Size: a a a

Kotlin Community

2020 December 08

AM

Andrew Mikhaylov in Kotlin Community
Разве что либы часто готовы для булевых значений кроме "true"/"false" принимать ещё "0"/"1" и т.п.
источник

RK

Rasul Kamolov in Kotlin Community
Do you guys speak only in Russian?
источник

с#

саша сок #KotlinGang... in Kotlin Community
Rasul Kamolov
Do you guys speak only in Russian?
no
источник

I

Ilya in Kotlin Community
Andrew Mikhaylov
Ну а если решать задачу самостоятельно, то вы никуда не денетесь от того, что вам из пришедшего массива строк отдельные элементы нужно превращать тем или иным способом в числа, булины и т.д. Это не криво, это единственный вариант 🤷‍♂
Ну я про это и писал выше
источник

AM

Andrew Mikhaylov in Kotlin Community
Ilya
Ну я про это и писал выше
Не, ну вы написали "криво", я просто поясняю, что иначе никак, ничего кривого в этом нет)
источник

I

Ilya in Kotlin Community
Andrew Mikhaylov
Не, ну вы написали "криво", я просто поясняю, что иначе никак, ничего кривого в этом нет)
Не я это написал, ну ладно)
источник

AM

Andrew Mikhaylov in Kotlin Community
Ilya
Не я это написал, ну ладно)
Ой, прошу прощения, я в трёх соснах сообщениях заблудился)
источник

A

Ak in Kotlin Community
Rasul Kamolov
Do you guys speak only in Russian?
English, French too
источник

AN

Alexander Nozik in Kotlin Community
Ak
English, French too
Not French. Officially only English and Russian.
источник

А

Артем in Kotlin Community
Здравствуйте. Подскажите пожалуйста по такому вопросу: допустим у меня есть nullable поле в классе и есть геттер, который в том числе проверяет это поле на null. Далее я хочу обратиться к этому полю после проверки геттера, но смарткаст, разумеется, не происходит, и поле все еще определяется как nullable, хотя я точно знаю, что null там уже нет, поэтому приходится использовать !!. В typescript, например, есть специальные конструкции, применимые к геттерам или методам, которые позволяют произвести смарткаст в таком кейсе, нет ли чего-то подобного в котлин? К сожалению сам не нашел. Спасибо
источник

D

Denys in Kotlin Community
Артем
Здравствуйте. Подскажите пожалуйста по такому вопросу: допустим у меня есть nullable поле в классе и есть геттер, который в том числе проверяет это поле на null. Далее я хочу обратиться к этому полю после проверки геттера, но смарткаст, разумеется, не происходит, и поле все еще определяется как nullable, хотя я точно знаю, что null там уже нет, поэтому приходится использовать !!. В typescript, например, есть специальные конструкции, применимые к геттерам или методам, которые позволяют произвести смарткаст в таком кейсе, нет ли чего-то подобного в котлин? К сожалению сам не нашел. Спасибо
А вы точно правильный геттер используете?
источник

с#

саша сок #KotlinGang... in Kotlin Community
Артем
Здравствуйте. Подскажите пожалуйста по такому вопросу: допустим у меня есть nullable поле в классе и есть геттер, который в том числе проверяет это поле на null. Далее я хочу обратиться к этому полю после проверки геттера, но смарткаст, разумеется, не происходит, и поле все еще определяется как nullable, хотя я точно знаю, что null там уже нет, поэтому приходится использовать !!. В typescript, например, есть специальные конструкции, применимые к геттерам или методам, которые позволяют произвести смарткаст в таком кейсе, нет ли чего-то подобного в котлин? К сожалению сам не нашел. Спасибо
var source: Any? = null
val nonNull get() = if(source == null) ... else source
источник

с#

саша сок #KotlinGang... in Kotlin Community
Артем
Здравствуйте. Подскажите пожалуйста по такому вопросу: допустим у меня есть nullable поле в классе и есть геттер, который в том числе проверяет это поле на null. Далее я хочу обратиться к этому полю после проверки геттера, но смарткаст, разумеется, не происходит, и поле все еще определяется как nullable, хотя я точно знаю, что null там уже нет, поэтому приходится использовать !!. В typescript, например, есть специальные конструкции, применимые к геттерам или методам, которые позволяют произвести смарткаст в таком кейсе, нет ли чего-то подобного в котлин? К сожалению сам не нашел. Спасибо
геттер всегда возвращает такой же тип (нуллабл в данном случае) , какой у переменной. а сеттер всегда принимает такой же тип.
источник

AL

Alexander Levin in Kotlin Community
Артем
Здравствуйте. Подскажите пожалуйста по такому вопросу: допустим у меня есть nullable поле в классе и есть геттер, который в том числе проверяет это поле на null. Далее я хочу обратиться к этому полю после проверки геттера, но смарткаст, разумеется, не происходит, и поле все еще определяется как nullable, хотя я точно знаю, что null там уже нет, поэтому приходится использовать !!. В typescript, например, есть специальные конструкции, применимые к геттерам или методам, которые позволяют произвести смарткаст в таком кейсе, нет ли чего-то подобного в котлин? К сожалению сам не нашел. Спасибо
Ну, примерно так:

Шаг 1: лучше не делить поля (которых в общем-то в Котлине нет, поскольку есть только свойства) и геттеры (вещь, которая почти всегда заменима свойствами)
Шаг 2: как только мы объединили "поле" и геттер, если у вас новополученное свойство неизменяемо и объявлено в том же модуле, где используется, то при проверке на null будут последующие смарт-касты.
источник

А

Артем in Kotlin Community
Дело в том, что геттер возвращает у меня Boolean. Если конкретнее - то мое поле это экземпляр класса Socket, и оно nullable. Геттер называется isConnected и проверяет 1) существование сокета (что он не null) 2) что он подключен. Т.е. следствие, что поле не null после проверки геттера, только косвенное
источник

А

Артем in Kotlin Community
Я интересовался, существует ли способ как-то помочь компилятору понять, что из истинности данного геттера следует, что поле не null
источник

с#

саша сок #KotlinGang... in Kotlin Community
Артем
Дело в том, что геттер возвращает у меня Boolean. Если конкретнее - то мое поле это экземпляр класса Socket, и оно nullable. Геттер называется isConnected и проверяет 1) существование сокета (что он не null) 2) что он подключен. Т.е. следствие, что поле не null после проверки геттера, только косвенное
можно сниппет кода пожалуйста
источник

А

Артем in Kotlin Community
var socket: Socket? = null
...
val isConnected
       get() = socket != null && socket!!.isConnected

...
далее в методе:
if (isConnected) return
далее предполагается, что socket не null
источник

ПГ

Павло Гриник... in Kotlin Community
Артем
Я интересовался, существует ли способ как-то помочь компилятору понять, что из истинности данного геттера следует, что поле не null
посмотрите на контракты, может они помогут
источник

А

Артем in Kotlin Community
Тут есть один спорный момент, что смарткаст не происходит уже в геттере
источник