Scala имеет общую identity
функцию в Predef:Имеет ли Kotlin функцию идентификации?
def identity[A](x: A): A
ли Котлин иметь аналогичный объект в стандартной библиотеке? Конечно, я мог бы просто использовать { it }
вместо этого, но найти identity
проще для чтения, а создание экземпляров всех этих лямбдов немного расточительно.
Я должен быть в состоянии использовать эту функцию identity
в тех местах, где ожидается функция (Foo) -> Foo
, для любого типа Foo
. Возможна ли такая функция в системе типов Котлина? (В случае Scala, есть неявное преобразование, который оборачивает метод внутри объекта функции или что-то.)
'VAL F: (String) -> String = identity' не работает ... – fredoverflow
Вам нужно написать ':: identity', чтобы создать экземпляр объекта функции из функции.Это похоже на ссылки на методы Java. –
Эй! Я нашел прецедент для такой функции! Это функция 'list.toMap (A, B)', как здесь: http://stackoverflow.com/questions/32935470/how-to-convert-list-to-map-in-kotlin/32938733#32938733 Подумайте, что будет 'fun it (x) = x', чем' list.toMap (:: it, {it.length}) 'преобразует список в карту, где элементы являются ключами. – voddan