Котлин Монады и Лямбда в Android - PullRequest
0 голосов
/ 21 сентября 2018

Итак, я понял, что функции Java 8, такие как Lambdas или Streams, доступны только для API уровня 24+ в Android.

Как насчет лямбд и монад в Kotlin?Они также доступны только после 24-го уровня, или они доступны для любого уровня API (с момента появления Kotlin)?

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

Ответы [ 2 ]

0 голосов
/ 22 сентября 2018

Функции лямбды и расширения Kotlin (то, что вы называете монадами) поддерживаются в API 16+ и должны поддерживаться также в API 14+.Когда Kotlin компилируется в Java, он преобразует лямбды в обычные операторы Java (вроде как, это беспорядок, если вы пытаетесь декомпилировать в Java).Я не совсем уверен, как работают функции расширения, но они также конвертируются.

В любом случае, Android Studio должна сообщить вам, если что-то, что вы пытаетесь, не будет работать на определенном APIуровень.

0 голосов
/ 22 сентября 2018

Java лямбды поддерживаются любым Android API.Такие функции, как Streams или Functional Interfaces поддерживаются в API 24 +.

Вот полный список: https://developer.android.com/studio/write/java8-support

AFAIK Android поддерживает все функции языка Kotlin.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...