Function html: Functions — JavaScript | MDN

transition-timing-function | htmlbook.ru

Internet ExplorerChromeOperaSafariFirefoxAndroidiOS
10.0+4.0+26.0+10.5+12.10+3.0+4.0+16.0+4.02.0+

Краткая информация

Значение по умолчаниюease
НаследуетсяНет
ПрименяетсяКо всем элементам, к псевдоэлементам ::before и ::after
Ссылка на спецификациюhttp://dev.w3.org/csswg/css3-transitions/#transition-timing-function

Версии CSS

CSS 1CSS 2CSS 2.1CSS 3

Описание

Устанавливает, насколько быстро должно изменяться значение стилевого свойство для которого применяется эффект перехода.

transition-timing-function представляет собой математическую функцию, показывающую, как быстро по времени меняется указанное через transition-property значение свойства. Начальная точка имеет координаты 0.0, 0.0, конечная — 1.0, 1.0, при этом функция по оси ординат может превышать эти значения в большую или меньшую сторону (рис. 1).

Рис. 1. Вид функции

Синтаксис

transition-timing-function: ease|ease-in|ease-out|ease-in-out|linear|step-start|step-end|steps|cubic-bezier

Значения

ease
Анимация начинается медленно, затем ускоряется и к концу движения опять замедляется. Аналогично cubic-bezier(0.25,0.1,0.25,1).
ease-in
Анимация медленно начинается, к концу ускоряется. Аналогично cubic-bezier(0.42,0,1,1).
ease-out
Анимация начинается быстро, к концу замедляется. Аналогично cubic-bezier(0,0,0.58,1).
ease-in-out
Анимация начинается и заканчивается медленно. Аналогично cubic-bezier(0.42,0,0.58,1).
linear
Одинаковая скорость от начала и до конца.
step-start
Как таковой анимации нет. Стилевые свойства сразу же принимают конечное значение.
step-end
Как таковой анимации нет. Стилевые свойства находятся в начальном значении заданное время, затем сразу же принимают конечное значение.
steps
Ступенчатая функция, имеющая заданное число шагов.

transition-timing-function: steps(<число>, start | end)

 
Здесь: <число> — целое число больше нуля; start — задаёт полунепрерывную снизу функцию; end — задаёт полунепрерывную сверху функцию.
 
cubic-bezier
Задаёт функцию движения в виде кривой Безье.

ease

ease-in

ease-out

ease-in-out

linear

step-start

step-end

steps(2, start)

Чтобы посмотреть результат действия разных значений, наведите курсор на поле ниже. Время эффект перехода установлено как 3s.

ease

ease-in

ease-out

ease-in-out

linear

step-start

step-end

steps(5, end)

cubic-bezier(0.1, -0.6, 0.2, 0)

Пример

HTML5CSS3IE 10+CrOpSaFx

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>transition-timing-function</title>
  <style>
   .
progress { background: #333; /* Фон */ border: 2px solid #333; /* Рамка */ height: 20px; /* Высота */ position: relative; /* Относительное позиционирование */ } .progress:hover::before{ width: 100%; } .progress::before{ transition-timing-function: linear; transition-duration: 5s; content: ''; position: absolute; /* Абсолютное позиционирование */ height: 100%; width: 0; background: #FFA600; /* Фон */ } </style> </head> <body> <div></div> </body> </html>

Объектная модель

[window.]document.getElementById(«elementID»).style.transitionTimingFunction

Браузеры

Chrome до версии 26.0, Safari и iOS поддерживают нестандартное свойство -webkit-transition-timing-function.

Opera до версии 12.10 поддерживает нестандартное свойство -o-transition-timing-function.

Firefox до версии 16.0 поддерживает нестандартное свойство -moz-transition-timing-function.

Safari поддерживает значение steps только с версии 5.1.

Анимация

CSS по теме

  • transition-timing-function

Статьи по теме

Рецепты CSS

функций | Документация Kotlin

Функции Kotlin объявляются с использованием ключевого слова fun :

fun double(x: Int): Int { возврат 2 * х }

Использование функции

Функции вызываются с использованием стандартного подхода:

val result = double(2)

Вызов функций-членов использует запись через точку:

Stream().read() // создаем экземпляр класса Stream и call read()

Параметры

Параметры функции определены с использованием нотации Паскаля — имя : тип . Параметры разделяются запятыми, и каждый параметр должен быть явно введен:

fun powerOf(number: Int, exponent: Int): Int { /*…*/ }

Вы можете использовать запятую при объявлении функции параметры:

удовольствие powerOf( номер: инт, показатель степени: Int, // запятая в конце ) { /*. ..*/ }

Аргументы по умолчанию

Параметры функции могут иметь значения по умолчанию, которые используются при пропуске соответствующего аргумента. Это уменьшает количество перегрузок:

прикольно читать( б: массив байтов, выкл.: Int = 0, len: Int = b.size, ) { /*…*/ }

Значение по умолчанию устанавливается добавлением = к типу.

Переопределяющие методы всегда используют значения параметров базового метода по умолчанию. При переопределении метода, который имеет значения параметров по умолчанию, значения параметров по умолчанию должны быть исключены из подписи:

open class A { open fun foo(i: Int = 10) { /*…*/ } } класс Б: А () { override fun foo(i: Int) { /*…*/ } // Значение по умолчанию не допускается. }

Если параметр по умолчанию предшествует параметру без значения по умолчанию, значение по умолчанию можно использовать только путем вызова функции с именованными аргументами:

fun foo( бар: Int = 0, баз: инт, ) { /*. ..*/ } foo(baz = 1) // Используется значение по умолчанию bar = 0

Если последним аргументом после параметров по умолчанию является лямбда, вы можете передать его либо как именованный аргумент, либо за скобками:

fun foo( бар: Int = 0, баз: Инт = 1, qux: () -> Единица измерения, ) { /*…*/ } foo(1) { println(«hello») } // Использует значение по умолчанию baz = 1 foo(qux = { println(«hello») }) // Используются оба значения по умолчанию bar = 0 и baz = 1 foo { println(«hello») } // Используются оба значения по умолчанию: bar = 0 и baz = 1

Именованные аргументы

Вы можете назвать один или несколько аргументов функции при ее вызове. Это может быть полезно, когда у функции много аргументов и трудно связать значение с аргументом, особенно если это логическое значение или значение null .

Когда вы используете именованные аргументы в вызове функции, вы можете свободно менять порядок, в котором они перечислены. Если вы хотите использовать их значения по умолчанию, вы можете просто вообще исключить эти аргументы.

Рассмотрим функция переформатирования() , которая имеет 4 аргумента со значениями по умолчанию.

весело переформатировать( ул: Строка, normalizeCase: Boolean = истина, upperCaseFirstLetter: Boolean = истина, разделитьByCamelHumps: Boolean = ложь, разделитель слов: символ = ‘ ‘, ) { /*…*/ }

При вызове этой функции вам не нужно называть все ее аргументы:

переформатировать( «Нить!», ЛОЖЬ, upperCaseFirstLetter = ложь, разделитьByCamelHumps = правда, ‘_’ )

Можно пропустить все со значениями по умолчанию:

переформатировать («Это длинная строка!»)

Вы также можете пропустить определенные аргументы со значениями по умолчанию, а не опускать их все. Однако после первого пропущенного аргумента вы должны назвать все последующие аргументы:

переформатировать(«Это короткая строка!», upperCaseFirstLetter = false, wordSeparator = ‘_’)

Вы можете передавать переменное количество аргументов ( vararg ) с именами, использующими оператор spread :

fun foo(vararg strings: String) { /*. ..*/ } foo(strings = *arrayOf(«a», «b», «c»))

При вызове функций Java на JVM нельзя использовать синтаксис именованных аргументов, поскольку байт-код Java не всегда сохраняет имена параметров функции.

Функции, возвращающие единицы измерения

Если функция не возвращает полезного значения, ее тип возвращаемого значения — Единица измерения . Unit — это тип, имеющий только одно значение — Unit . Это значение не обязательно возвращать явно:

fun printHello(name: String?): Unit { если (имя != ноль) println(«Здравствуйте, $имя») еще println(«Привет!») // `return Unit` или `return` необязательны }

Объявление типа возвращаемого значения Unit также является необязательным. Приведенный выше код эквивалентен:

fun printHello(name: String?) { … }

Функции с одним выражением

Когда функция возвращает одно выражение, фигурные скобки можно опустить, а тело указать после a = символ:

fun double(x: Int): Int = x * 2

Явное объявление возвращаемого типа является необязательным, если это может быть определено компилятором:

fun double(x: Int) = x * 2

Явные возвращаемые типы

Функции с телом блока всегда должны явно указывать типы возвращаемых значений, если только они не предназначены для возврата Unit , в этом случае указание возвращаемого типа необязательный.

Kotlin не выводит возвращаемые типы для функций с блочными телами, потому что такие функции могут иметь сложный поток управления в теле, и тип возвращаемого значения будет неочевидным для читателя (а иногда даже для компилятора).

Переменное количество аргументов (varargs)

Параметр функции (обычно последний) можно пометить модификатором vararg :

fun asList(vararg ts: T): List { val результат = ArrayList() for (t in ts) // ts — это массив результат.добавить(т) вернуть результат }

В этом случае вы можете передать функции переменное количество аргументов:

val list = asList(1, 2, 3)

Внутри функции vararg -параметр типа T виден как массив T , как в примере выше, где переменная ts имеет тип

Array .

Только один параметр может быть помечен как vararg . Если параметр vararg не является последним в списке, значения для последующих параметров могут быть переданы с использованием синтаксиса именованного аргумента или, если параметр имеет тип функции, путем передачи лямбда-выражения вне круглых скобок.

Когда вы вызываете vararg -функцию, вы можете передавать аргументы по отдельности, например asList(1, 2, 3) . Если у вас уже есть массив и вы хотите передать его содержимое в функцию, используйте оператор spread (перед массивом * ):

val a = arrayOf(1, 2, 3) val list = asList(-1, 0, *a, 4)

Если вы хотите передать массив примитивного типа в vararg , вам нужно преобразовать его в обычный (типизированный) массив с помощью

toTypedArray() function:

val a = intArrayOf(1, 2, 3) // IntArray — массив примитивного типа val list = asList(-1, 0, *a.toTypedArray(), 4)

Инфиксная нотация

Функции, помеченные ключевым словом инфиксная , также могут быть вызваны с использованием инфиксной нотации (без точки и круглых скобок для вызов). Инфиксные функции должны соответствовать следующим требованиям:

  • Они должны быть функциями-членами или функциями расширения.

  • У них должен быть один параметр.

  • Параметр не должен принимать переменное количество аргументов и не должен иметь значения по умолчанию.

инфикс fun Int.shl(x: Int): Int { … } // вызов функции с использованием инфиксной записи 1 шл 2 // такой же как 1.shl(2)

Инфиксные вызовы функций имеют более низкий приоритет, чем арифметические операторы, приведения типов и оператор rangeTo . Следующие выражения эквивалентны:

  • 1 Shl 2 + 3 эквивалентен 1 Shl (2 + 3)

  • 0 до n * 2 эквивалентен 0. union ys as Set<*> эквивалентен xs union (ys as Set<*>)

С другой стороны, приоритет вызова инфиксной функции выше, чем у логических операторов && и || , это — и в -чеки и некоторые другие операторы. Эти выражения также эквивалентны:

Обратите внимание, что инфиксные функции всегда требуют указания как получателя, так и параметра. Когда вы вызываете метод текущего получателя с использованием инфиксной нотации, явно используйте this . Это необходимо для обеспечения однозначного синтаксического анализа.

класс MyStringCollection { infix fun add(s: String) { /*…*/ } забавная сборка () { это добавить «abc» // Правильно добавить(«abc») // Правильно //добавляем «abc» // Неверно: должен быть указан получатель } }

Область действия функции

Функции Kotlin могут быть объявлены на верхнем уровне в файле, что означает, что вам не нужно создавать класс для хранения функции, что требуется в таких языках, как Java, C# и Scala ( определение верхнего уровня доступно, начиная с Scala 3). В дополнение к функциям верхнего уровня функции Kotlin также могут быть объявлены локально как функции-члены и функции расширения.

Локальные функции

Kotlin поддерживает локальные функции, которые являются функциями внутри других функций:

весело dfs (граф: график) { fun dfs (текущий: Vertex, посещенный: MutableSet) { если (!visited.add(current)) вернуть for (v в current.neighbours) dfs(v, посетил) } dfs(graph.vertices[0], HashSet()) }

Локальная функция может обращаться к локальным переменным внешних функций (замыкание). В приведенном выше случае посещенных может быть локальной переменной:

fun dfs(graph: Graph) { val посещено = HashSet() весело dfs (текущий: вершина) { если (!visited.add(current)) вернуть for (v в current.neighbours) dfs(v) } dfs (граф. вершины [0]) }

Функции-члены

Функция-член — это функция, определенная внутри класса или объекта:

class Sample { весело foo() { print(«Foo») } }

Функции-члены вызываются с записью через точку:

Sample(). foo() // создает экземпляр класса Sample и вызывает foo

Дополнительные сведения о классах и переопределяющих членах см. в разделе Классы и наследование.

Общие функции

Функции могут иметь общие параметры, которые указываются с помощью угловых скобок перед именем функции:

fun singletonList(item: T): List { /*…*/ }

Дополнительные сведения об универсальных функциях см. в разделе Универсальные функции.

Функции хвостовой рекурсии

Kotlin поддерживает стиль функционального программирования, известный как хвостовая рекурсия. Для некоторых алгоритмов, которые обычно используют циклы, вы можете вместо этого использовать рекурсивную функцию без риска переполнения стека. Когда функция помечена модификатором tailrec и соответствует требуемым формальным условиям, компилятор оптимизирует рекурсию, оставляя вместо нее быструю и эффективную версию, основанную на циклах:-15 tailrec fun findFixPoint(x: Double = 1. 0): Double = if (Math.abs(x — Math.cos(x)) < eps) x else findFixPoint(Math.cos(x))

Этот код вычисляет фиксированную точку косинуса, которая является математической константой. Он просто вызывает Math.cos несколько раз, начиная с 1.0 , пока результат не перестанет меняться, давая результат 0.7390851332151611 для указанной точности eps . Полученный код эквивалентен этому более традиционному стилю: 9-15 приватная забава findFixPoint(): Double { переменная х = 1,0 пока (правда) { знач y = Math.cos(x) если (Math.abs(x — y) < eps) вернуть x х = Math.cos (х) } }

Чтобы иметь право на модификатор tailrec , функция должна вызывать себя в качестве последней операции, которую она выполняет. Вы не можете использовать хвостовую рекурсию, когда после рекурсивного вызова есть больше кода, в пределах try / catch / finally блоков или при открытых функциях. В настоящее время хвостовая рекурсия поддерживается Kotlin для JVM и Kotlin/Native.

См. Также :

  • Встроенные функции

  • Функции расширения

  • Функции высшего порядка и LAMBDAS

LAST MODED FENFORMS и LAMBDAS

: 29000.s. 9000.ships 9000.ship.

java.util.function (платформа Java SE 8 )

BiConsumer

Представляет операцию, которая принимает два входных аргумента и не возвращает результат.

BiFunction

Представляет функцию, которая принимает два аргумента и возвращает результат.

BinaryOperator

Представляет собой операцию над двумя операндами одного типа, дающую результат того же типа, что и операнды.

BiPredicate

Представляет предикат (логическую функцию) двух аргументов.

Логический поставщик

Представляет поставщика логических результатов с числовым значением .

Потребитель

Представляет операцию, которая принимает один входной аргумент и не возвращает результат.

Даблбинариоператор

Представляет операцию над двумя двойными -значными операндами и созданием двойной -значный результат.

Двойной потребитель

Представляет операцию, которая принимает один двойной аргумент со значением и не возвращает никакого результата.

Двойная функция

Представляет функцию, которая принимает аргумент с двойным значением и создает результат.

Двойной предикат

Представляет предикат (логическую функцию) одного двойного -значного аргумент.

Двойной поставщик

Представляет поставщика двойных результатов.

Даблтоинтфункция

Представляет функцию, которая принимает аргумент с двойным значением и создает int-значный результат.

Даблтолонгфункция

Представляет функцию, которая принимает аргумент с двойным значением и создает долгосрочный результат.

Двойной унарный оператор

Представляет операцию над одним двойным -значным операндом, которая производит двойной -значный результат.

Функция

Представляет функцию, которая принимает один аргумент и возвращает результат.

Интбинариоператор

Представляет операцию над двумя операндами со значениями int и созданием int -значный результат.

IntConsumer

Представляет операцию, которая принимает один аргумент со значением int и не возвращает никакого результата.

IntFunction

Представляет функцию, которая принимает аргумент с целочисленным значением и создает результат.

Интпредикат

Представляет предикат (логическую функцию) одного int -значного аргумент.

IntSupplier

Представляет поставщика int -значных результатов.

Инттодаублефункция

Представляет функцию, которая принимает аргумент с целочисленным значением и создает двузначный результат.

Инттолонгфункция

Представляет функцию, которая принимает аргумент с целочисленным значением и создает долгосрочный результат.

IntUnaryOperator

Представляет операцию над одним операндом со значением int , которая производит int -значный результат.

Лонгбинариоператор

Представляет собой операцию над двумя длинными -значными операндами и созданием длинный -значный результат.

Лонгпотребитель

Представляет операцию, которая принимает один аргумент со значением long и не возвращает никакого результата.

Длинная функция

Представляет функцию, которая принимает аргумент с длинным значением и создает результат.

Длинный предикат

Представляет предикат (логическую функцию) одного long -значного аргумент.

Длинный поставщик

Представляет поставщика длинных результатов с значениями.

LongToDoubleFunction

Представляет функцию, которая принимает аргумент с длинным значением и создает двузначный результат.

LongToIntFunction

Представляет функцию, которая принимает аргумент с длинным значением и создает int-значный результат.

Лонгунариоператор

Представляет операцию над одним длинным -значным операндом, которая производит long -значный результат.

ОбжДублеКонсумер<Т>

Представляет операцию, которая принимает объектное значение и double аргумент со значением и не возвращает результата.

ОбжИнтКонсумер

Представляет операцию, которая принимает объектное значение и int аргумент со значением и не возвращает результата.

ОбжЛонгКонсумер

Представляет операцию, которая принимает объектное значение и длинный аргумент со значением и не возвращает результата.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *