Kotlin: как вернуть некоторую ценность из области?

В Scala я могу написать что-то вроде этого:

val something = { val temp1 = ... val temp2 = ... temp1 + temp2 } 

Насколько я знаю, лучший способ сделать то же самое в Котлине:

 val something = { val temp1 = ... val temp2 = ... temp1 + temp2 }() 

На самом деле это лямбда с типом Unit -> Int, который вызывается немедленно. Интересно, может ли этот код каким-то образом улучшить? Может быть, есть встроенная функция, которая позволяет мне написать val something = block {…} или что-то вроде этого?

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

 val something = run { val temp1 = ... val temp2 = ... temp1 + temp2 } 
Intereting Posts
Android Kotlin Защищенное свойство предоставляет свой закрытый тип ExpiresLayout Несоответствие типа Котлина с дженериками Высота просмотра равна 0 при определенных условиях при переходе между действиями Измените список на карте в Kotlin, настроив этот конвертировать EditText теряет фокус наTextChange Использование предложения Kotlin WHEN для <, <=,> =,> сравнений Функция Kotlin Call Javascript в Android без webView Создать конкретный Java-класс, который использует рекурсивные дженерики в Котлине Смешанная Kotlin + Java с Maven, неразрешенная ссылка Преобразование java-функции, которая использует байты для Kotlin Возможно ли запустить последнюю версию Akka Framework (2.5.2) в Android-проекте? Как добавить панель инструментов в Android PreferenceActivity, когда NoActionBar установлен в качестве темы приложения? Атрибут Button onClick не имеет значения, если активность написана в Котлине java.lang.IllegalStateException Не уверен, что это с типом данных? Почему строка интерполяции Kotlin объединяет строки в Java?