Size: a a a

StartAndroid Ru Kotlin

2020 April 15

PS

Petrov Sergey in StartAndroid Ru Kotlin
по доке по ссылке "Условное выражение when"
источник

PS

Petrov Sergey in StartAndroid Ru Kotlin
меня прямо пробирают до глубины души доки, где примеры оторваны от контекста и не работают
источник
2020 April 16

SG

Slava Glushenkov in StartAndroid Ru Kotlin
Kotlin выводит тип при присвоении, исходя из присвоенного значения. val test =12 эквивалентно val test: Int = 12. И Kotlin не понимает зачем заведомо Int проверять на is String. Во втором случае аргументом функции может быть любой тип. И передача в этом конкретном случае в качестве параметра функций значения типа Int не криминал.
источник

Д

Денис in StartAndroid Ru Kotlin
Всем привет. А возможно ли прервать передачу между клиент-сервером, не закрываю сокета?
источник

EA

Efim Arisov in StartAndroid Ru Kotlin
Задай на сервере ендпоинт, типа: stopClient, и не посылай ответы клиентам в стопе
источник

J

J.S in StartAndroid Ru Kotlin
Всем привет ! как создать List<String> c проверкой условией на !sometext.isEmty()  максимально коротко ?
источник
2020 April 18

PS

Petrov Sergey in StartAndroid Ru Kotlin
typealias DoubleConversion = (Double) -> Double
источник

PS

Petrov Sergey in StartAndroid Ru Kotlin
val test: DoubleConversion
test == 12.14

 println(test)
источник

PS

Petrov Sergey in StartAndroid Ru Kotlin
project.kt:8:3: error: variable 'test' must be initialized
 test == 12.14
источник

PS

Petrov Sergey in StartAndroid Ru Kotlin
окей:
val test: DoubleConversion = 12.14
println(test)

out:

project.kt:7:32: error: the floating-point literal does not conform to the expected type DoubleConversion /* = (Double) -> Double */
 val test: DoubleConversion = 12.14
                              ^
источник

PS

Petrov Sergey in StartAndroid Ru Kotlin
как этим typealias правильно пользоваться?
источник

YS

Yura Stetsyc in StartAndroid Ru Kotlin
Petrov Sergey
typealias DoubleConversion = (Double) -> Double
Здесь у тебя тип функции (лямбды) Double -> Double.  А ты присваиваеш просто число.
Так сработает
fun convert(d: Double) -> Double = d*2

val test: DoubleConversion = convert

val a = test(2.1) // 4.2
источник

PS

Petrov Sergey in StartAndroid Ru Kotlin
Yura Stetsyc
Здесь у тебя тип функции (лямбды) Double -> Double.  А ты присваиваеш просто число.
Так сработает
fun convert(d: Double) -> Double = d*2

val test: DoubleConversion = convert

val a = test(2.1) // 4.2
typealias DoubleConversion = (Double) -> Double
fun convert(d: Double) -> Double = d*2;

fun main(args: Array<String>) {
 // throw CustomException("Threw custom exception")
 // val a: Int? = null
 // print(a?.toString())
 val test: DoubleConversion = convert

 val a = test(2.1) // 4.2
 print(a)
}
не работает
источник

PS

Petrov Sergey in StartAndroid Ru Kotlin
вот тоже пример и тоже не работает
Если умное приведение вам не нужно, то используйте запись с безопасным оператором ?.


val a: Int? = null

a?.toLong()

Функция будет вызвана только в том случае, если значение a отлично от null. Безопасные вызовы можно сцеплять.
источник

A

Aleksandr in StartAndroid Ru Kotlin
Petrov Sergey
typealias DoubleConversion = (Double) -> Double
val convert = { d: Double -> d * 2}
convert(2)
источник

A

Aleksandr in StartAndroid Ru Kotlin
Petrov Sergey
typealias DoubleConversion = (Double) -> Double
val test: DoubleConversion
val convert = { d: Double -> d * 2}
test = convert
test(2)
источник

AB

Aleksei B. in StartAndroid Ru Kotlin
Вообще скорей всего этот typealias был сделан для передачи в функции, например, чтобы можно было подменять логику преобразования Double чисел:

typealias DoubleConversion = (Double) -> Double

...

fun getResult(value: Double, conversion: DoubleConversion): Double {
   return conversion(value)
}

...

fun main() {
   val resultA = getResult(5.0) {
       it*2.0
   }
   val resultB = getResult(5.0) {
       it*3.0
   }
   println(resultA) // 10.0
   println(resultB) // 15.0
}
источник

I

I in StartAndroid Ru Kotlin
Всем привет. Подскажите знающие, имеется метод который принимает лямбду
transform: (T) -> R
В самом методе лямбда используется так
transform((response.body()!!))
При вызове этого метода лямбда передается так
{ it.user }
Вопрос.Как подставляется в метод эта лямбда? Получается response.body().user или как? Заранее спасибо за ответ.
источник

J

J.S in StartAndroid Ru Kotlin
всем привет!

listener: (SomeModelClass) -> Unit

можете объяснить что это означает ? , в доках Unit эта аналог VOID в java , выше текст юзается в recyclerView и никак не могу понять зачем и что это означает ? Спасибо!
источник

AB

Aleksei B. in StartAndroid Ru Kotlin
I
Всем привет. Подскажите знающие, имеется метод который принимает лямбду
transform: (T) -> R
В самом методе лямбда используется так
transform((response.body()!!))
При вызове этого метода лямбда передается так
{ it.user }
Вопрос.Как подставляется в метод эта лямбда? Получается response.body().user или как? Заранее спасибо за ответ.
судя по описанию так:
it.user(response.body()!!)
источник