Size: a a a

2021 June 03

IL

Ivan Lotoff in Kotlin Start
как передать action. Можно ()->Unit?
источник

AL

Alexander Levin in Kotlin Start
Check FAQ in the channel description, there are some courses and books there.
источник

AL

Alexander Levin in Kotlin Start
В самом базовом виде - да, например так.
источник

IL

Ivan Lotoff in Kotlin Start
а есть отдельный класс как в си шарп? Action
источник

AL

Alexander Levin in Kotlin Start
Action из шарпов наверное не () -> Unit, а (T) -> Unit (неточно, не работал с шарпами)

Прямо отдельной сущности в Котлине для Action нету, но если вам надо, то

* Можете завести алиас
typealias Action<T> = (T) -> Unit
Больше про это тут:
https://kotlinlang.org/docs/type-aliases.html

* Можете себе свой SAM Interface завести. Про них тут: https://kotlinlang.org/docs/fun-interfaces.html
источник
2021 June 04

З

Захар in Kotlin Start
можно ли как-то выдать сообщение что name не подходит по критериям и при этом иметь тип переменной String

если respond обернуть в error() то проблема решается, но тогда в консоль бросает исключение с описанием Kotlin.Unit из-за того, что respond ничего не возвращает
источник

З

Захар in Kotlin Start
как я понимаю надо создать своё исключение и выбрасывать его
а хэндлить будет ктор и через status pages всё красиво оформить?
источник

BP

Bogdan Panchenko in Kotlin Start
После ?: нужно run { call.respond(); return@label }
источник

FG

Fuad Garayev in Kotlin Start
добрый день,есть ли какой то метод специальный для удаления например последних 2-3 слов из стринга?или вариант только сплитить по пробелу а дальше из листа удалять?
источник

В

Виктор in Kotlin Start
Может есть поадекватнее метод, но я бы к String применил методы substringAfterLast и substringBeforeLast, а потом, возможно, trim.
источник

В

Виктор in Kotlin Start
Mutex же нужен, только если есть множество слабо контролируемых попыток доступа к неким общим ресурсам? И как он это делает? В примерах дается что-то вроде
mutex.withLock { //какая-то задача}, где mutex = Mutex()
Т.е. если верхняя строка вызовется повторно, то она выполнит ее сразу, если нет параллельного доступа в данный момент, а если есть, то подождет и позже выполнит код?
источник

ВК

Виктор Колышев... in Kotlin Start
Подскажите, а можно ли как-то сделать enum класс поддерживающий локализацию?
Т.е. вместо:

enum class Direction {
   NORTH, SOUTH, WEST, EAST
}

Что-то вроде:
enum class Direction {
   getString(R.string.north)
}
источник

ВК

Виктор Колышев... in Kotlin Start
Ну или через enum class Direction (val localizedDirection: String)
источник

AL

Alexander Levin in Kotlin Start
Ну смотря как хочется сделать, локализации наверное могут по-разному делаться, если вам просто нужно положить ключ локализации, то не должно быть проблем:

enum class Direction(val localisationKey: String) {
   North("some.prefix.domain.north"),
   South("some.prefix.domain.south"),
   West("some.prefix.domain.west"),
   East("some.prefix.domain.east")
}


Также может положить не константу, а ссылку на что-либо или какой-нибудь объект локализации (как это в том же Андроиде делается обычно я не знаю, сорри)
источник

ВК

Виктор Колышев... in Kotlin Start
идея понятна, теперь понять как из котлина в ресурс постучаться андроидовский, ушел гуглить
источник

AL

Alexander Levin in Kotlin Start
Специального метода из коробки нету, большинство функций скорее работают со строкой как с набором символов, не прямо человеческим текстом. Так что да, либо split/dropLast(n), либо искать второй-третий с конца пробел и делать substring условный.
источник

IL

Ivan Lotoff in Kotlin Start
привет всем, можно поподробнее узнать про object, если мы пишем его, вместо class, то котлин просто под капотом реализует синглтон?
источник

a

awawa in Kotlin Start
Можно декомпилировать и посмотреть что в итоге будет
источник

a

awawa in Kotlin Start
Ну это если интересно разобраться. А вообще да, там синглтон обычный
источник

FG

Fuad Garayev in Kotlin Start
Всем привет,как можно прописать двойной ?.let
у меня две переменные нулэйбл.recorder и client к примеру.
или вариант только один let в другом?типо

recorder.?let{
client.?let{
 }
}
источник