Size: a a a

2019 October 17

E🎸

El Mariachi 🎸 in Kotlin Start
Kirill
перейти на List<Pair<A, B>>
к сожалению не гарантирует уникальность ключа, да и выборка по ключу в таком варианте хуже
источник

K

Kirill in Kotlin Start
есть что-то на подобии indexOf, но чтобы в случае неудачи вместо -1 вернул дефолтный элемент?
источник

AL

Alexander Levin in Kotlin Start
Kirill
есть что-то на подобии indexOf, но чтобы в случае неудачи вместо -1 вернул дефолтный элемент?
Судя по всему нету, но как всегда можно самому сконструировать (если конечно достаточно часто нужно):

fun main() {
   val list = listOf("ab", "cd", "ef")
   val result = list.indexOf("bc").takeIf { it != -1 } ?: 2
   val resultAlt = list.indexOfOrElse("bc", 2)
   val resultAlt2 = list.indexOfOrElse("bc") { 2 }
}

fun <T> List<T>.indexOfOrElse(element: T, defaultIndex: Int) = indexOf(element).takeIf { it != 1 } ?: defaultIndex
inline fun <T> List<T>.indexOfOrElse(element: T, defaultIndex: () -> Int) = indexOf(element).takeIf { it != 1 } ?: defaultIndex()
источник

F

FOX in Kotlin Start
var countries: Map<String, Int> = mapOf("USA" to 300, "France" to 60, "Germany" to 81, "Germany" to 80)

Верно ли я понимаю что ключ Germany перезапишется?
источник

AL

Alexander Levin in Kotlin Start
FOX
var countries: Map<String, Int> = mapOf("USA" to 300, "France" to 60, "Germany" to 81, "Germany" to 80)

Верно ли я понимаю что ключ Germany перезапишется?
Да, всё верно, остаётся только последний.

Примечание - не забывайте читать документацию (там явно написано: ,https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/map-of.html , в идее можно нажать Ctrl+Q вроде) и/или просто проверять (для этого например есть scratch-файлы в идее)
источник

AK

Andrey Kshukin in Kotlin Start
Привет! Можете помочь с пояснениями зачем интерфейс засовывать в класс?
источник

E🎸

El Mariachi 🎸 in Kotlin Start
очевидно, чтоб этот интерфейс реализовал слушатель
источник

M

Malik in Kotlin Start
Andrey Kshukin
Привет! Можете помочь с пояснениями зачем интерфейс засовывать в класс?
🤷🏼‍♂️
источник

E🎸

El Mariachi 🎸 in Kotlin Start
Andrey Kshukin
Привет! Можете помочь с пояснениями зачем интерфейс засовывать в класс?
в данном случае, вероятно это должна быть активити в которой размещен фрагмент
источник

M

Malik in Kotlin Start
Andrey Kshukin
Привет! Можете помочь с пояснениями зачем интерфейс засовывать в класс?
Если бы это была Java, то понятно, но в Kotlin это делать не обязательно
источник

K

Kirill in Kotlin Start
Alexander Levin
Судя по всему нету, но как всегда можно самому сконструировать (если конечно достаточно часто нужно):

fun main() {
   val list = listOf("ab", "cd", "ef")
   val result = list.indexOf("bc").takeIf { it != -1 } ?: 2
   val resultAlt = list.indexOfOrElse("bc", 2)
   val resultAlt2 = list.indexOfOrElse("bc") { 2 }
}

fun <T> List<T>.indexOfOrElse(element: T, defaultIndex: Int) = indexOf(element).takeIf { it != 1 } ?: defaultIndex
inline fun <T> List<T>.indexOfOrElse(element: T, defaultIndex: () -> Int) = indexOf(element).takeIf { it != 1 } ?: defaultIndex()
Понял, спасибо!)
источник

AK

Andrey Kshukin in Kotlin Start
Просто до этого я писла на c# и там это за гранью добра и зла. И наверняка есть причина почему в котлине интерфейс можно писать в классе. И я не догоняю почему(
источник

E🎸

El Mariachi 🎸 in Kotlin Start
а почему бы нет?
источник

AK

Andrey Kshukin in Kotlin Start
Если только при создании поля с этой переменной ты обязан создать метод для этого поля.
источник

AK

Andrey Kshukin in Kotlin Start
хотя это глупо как то)
источник

E🎸

El Mariachi 🎸 in Kotlin Start
ну, неймспейсов же нет? почему класс не использовать как неймспейс
источник

AK

Andrey Kshukin in Kotlin Start
El Mariachi 🎸
ну, неймспейсов же нет? почему класс не использовать как неймспейс
Я об этом подумал. Проще создать отдельную папку где хранятся эти интерфейсы или вынести в отдельный файл.
источник

AK

Andrey Kshukin in Kotlin Start
Просто когда интерфейс внутри класса читать сложнее, хотя дело привычка наверное)
источник

E🎸

El Mariachi 🎸 in Kotlin Start
Andrey Kshukin
Я об этом подумал. Проще создать отдельную папку где хранятся эти интерфейсы или вынести в отдельный файл.
чем проще? :) студия автоматом предлагает такой вариант.... на мой взгляд он ни хуже, ни лучше других... но поскольку автоматический, то как-раз он и проще
источник

AK

Andrey Kshukin in Kotlin Start
El Mariachi 🎸
чем проще? :) студия автоматом предлагает такой вариант.... на мой взгляд он ни хуже, ни лучше других... но поскольку автоматический, то как-раз он и проще
Видимо это для удобства языка сделано) Может через месяцок привыкну)
источник