@kotlin_lang

Страница 303 из 982
Виктор
04.09.2017
12:55:12
JRoot3D
04.09.2017
12:55:45
Да.
Я не понимаю как в button добавить drawableLeft/drawableStart

Quantum Harmonizer
04.09.2017
12:56:10
JRoot3D
04.09.2017
12:58:09
Google
JRoot3D
04.09.2017
12:58:30
Я все во внутренних свойствах копался

Lev
04.09.2017
13:10:58
for (e in m[k].subm) { ... Справедливо ругается на то что ключа может и не быть и будет null. Как это красиво и кратко поправить?

Quantum Harmonizer
04.09.2017
13:11:43
!! ?

Mi
04.09.2017
13:12:47
возомжно getOrElse как-то поможет

? animufag ?
04.09.2017
13:13:14
?: emptyList()

Алексей
04.09.2017
13:14:04
Кстати, по поводу тестов - это все-таки баг ? https://youtrack.jetbrains.com/issue/KT-13918

? animufag ?
04.09.2017
13:17:02
m.entries.forEach { } ?
там конкретный ключ

Mi
04.09.2017
13:19:26
m.get(k)?.subm ?: mapOf()

Глеб
04.09.2017
13:19:41
m[k]?.let { it.subm.forEach { } }

не знаю почему, но создавать пустые объекты мне кажется излишним.

Lev
04.09.2017
13:20:31
for (e in m[k]?.subm ?: emptyList()) { ...

Google
Lev
04.09.2017
13:21:00
Я думаю оно оптимизирует в байткод так что не будет пустого объекта

Dmitry
04.09.2017
13:22:02
Почему еще нет варианта m.get(k)?.subm?.forEach { }

Quantum Harmonizer
04.09.2017
13:22:07
Lev
04.09.2017
13:22:26
почему такой простой вопрос вызвал дебаты? =)

Глеб
04.09.2017
13:22:36
Mi
04.09.2017
13:22:37
Lev
04.09.2017
13:22:52
Это как то не особо хорошо

Quantum Harmonizer
04.09.2017
13:23:24
пруф?
Байт-код

Lev
04.09.2017
13:23:52
... ты прям ща посмотрел... или раньше смотрел?

Глеб
04.09.2017
13:23:58
пруф?
да там в сигнатуре видно, что будет анонимный класс

Lev
04.09.2017
13:24:12
internal object EmptyList

Quantum Harmonizer
04.09.2017
13:24:13
forEach создаёт итератор, emptyList возвращает один и тот же объект — это должен знать каждый, чёрт побери

Lev
04.09.2017
13:24:52
А ну да... это тупо один и тот же объект

Глеб
04.09.2017
13:25:00
но я не о тех "пустых" объектах, что обслуживают синтаксический сахар, а о передаче в функции, ожидающие данных, пустых списков

Quantum Harmonizer
04.09.2017
13:25:28
Глеб
04.09.2017
13:25:35
Quantum Harmonizer
04.09.2017
13:25:58
лямбда
https://kotlinlang.org/docs/reference/inline-functions.html

Google
Глеб
04.09.2017
13:26:32
о как

а если лямбда не на ()->Unit, а на интерфейс?

Quantum Harmonizer
04.09.2017
13:27:04
о как
Кроме того, у пустого списка — пустой итератор, тоже синглтон

Lev
04.09.2017
13:27:22
Короче, emptyList, как я понял

Quantum Harmonizer
04.09.2017
13:27:29
а если лямбда не на ()->Unit, а на интерфейс?
SAM-конверсии работают только для джавовых интерфейсов, а в Java нет инлайновых функций

Глеб
04.09.2017
13:28:52
Короче, emptyList, как я понял
если в случае, когда ключа нету, допустимо вызвать твой метод с пустым списком, то пустой список, если более рационально ничего не делать, то ?.

Lev
04.09.2017
13:30:08
Так... ?. идет вместе с emptyList()

for (e in m[k]?.subm ?: emptyList()) { ...

Оно не скомпилится как я понял если уберу элвиса

Глеб
04.09.2017
13:31:06
хотя, если там for, то оно и так ничего не выполнит

Lev
04.09.2017
13:37:01
а throws в котлине не принято добавлять?

Quantum Harmonizer
04.09.2017
13:37:57
а throws в котлине не принято добавлять?
в нём нет такого ключевого слова. Для интеропа есть @Throws

Lev
04.09.2017
13:38:18
Да, я увидел... короче котлин не заморачивается с исключениями?

Quantum Harmonizer
04.09.2017
13:39:18
Да, я увидел... короче котлин не заморачивается с исключениями?
Мне этот вопрос кажется немного нерешённым. Checked exceptions — плохо, unchecked exceptions — плохо, Either в котлине изначально нет.

Lev
04.09.2017
13:39:18
забавно

помоему checked очень даже не плохо

Quantum Harmonizer
04.09.2017
13:40:25
помоему checked очень даже не плохо
UnsupportedEncodingException, CloneNotSupportedException ?

Lev
04.09.2017
13:40:45
Result<T, E> как я понимаю заставит клиента таки разобрать вариант с исключением? (или это шутка была?)

Igor
04.09.2017
13:41:28
помоему checked очень даже не плохо
А у тебя есть опыт в scala/c# (go ?)? Просто имхо ChEx могут любить только люди выросшие на java и не видившие ничего другого.

Google
Lev
04.09.2017
13:42:26
ну какой то опыт есть... не ну если писать огроменные иерархии логики - то да, зашьешься с этими вещами...

ide бы хоть... советовало, "подмигивало", мол тут вот птичка вылетит

Igor
04.09.2017
13:45:07
Result<T, E> как я понимаю заставит клиента таки разобрать вариант с исключением? (или это шутка была?)
Я обычно делаю свои Option/Either и юзаю их по проекту, но за всех не скажу (может и не заморачиваются).

Lev
04.09.2017
13:45:49
Ну просто... раз уж так заморочились с NPE, то уж давайте пилить действительно устойчивый код

Quantum Harmonizer
04.09.2017
13:46:09
Кто-нибудь знает реализацию протертей, типа как в JavaFX, или хотя бы как это гуглить? Например, submitButton.enabledProperty = codeInput.textProperty.map { it.isNotEmpty() } Знаю, что можно сделать это с помощью Rx, но ищу более легковесный и менее многословный инструмент.

Lev
04.09.2017
13:47:13
на @Throws как я понял обращает внимание только java код, а котлину эта анноташка до лампочки?

Quantum Harmonizer
04.09.2017
13:47:50
Lev
04.09.2017
13:49:59
при вызове метода я проверяю свойство класса на не null с помощью if с return. И потом пытаюсь использовать его. Но смарт каст не срабатывает потому что "в любой момент может поменятсья". Это типа в многопоточном варианте? (да, поле может быть null по смыслу)

Igor
04.09.2017
13:50:36
Lev
04.09.2017
13:51:30
Ну я так и понял

Но это ведь не совсем кошерно? Совсем кошерно конечно это не null поле.. Хотя... многопоточка это тоже хорошо

Sergey
04.09.2017
13:53:51
field?.let { /* it not null here */} ?

Dibro
04.09.2017
14:05:51
или val field = this.field ?: return

Quantum Harmonizer
04.09.2017
14:10:50
(сам спровоцировал оффтоп — сам удалил)

Lev
04.09.2017
14:18:22
https://habrahabr.ru/post/322256/ чувак бесится из-за "в любой момент может поменяться"

Igor
04.09.2017
14:20:31
https://habrahabr.ru/post/322256/ чувак бесится из-за "в любой момент может поменяться"
Это же старье, вот (относительно) свеженький наброс https://radio-t.com/p/2017/09/02/podcast-561/ https://blog.frankel.ch/rise-fall-jvm-languages/

Igor
04.09.2017
14:38:45
Ну что kotlin нигде не нужен за пределами android (правда что-ли ?)

Google
Михаил
04.09.2017
14:41:06
а где еще)

Igor
04.09.2017
14:42:00
не вижу такой фразы
Ты не слушал подкаст?

? animufag ?
04.09.2017
14:42:07
нет не собираюсь

ну в общем норм наброс то что ты всерьёз слушаешь мнения этих челов про языки программирования когда 90% их контента это обновления на OS X и всякие policy для амазона

Igor
04.09.2017
14:45:09
ну ок

Ivan
04.09.2017
14:46:52
Потому что в андроиде у всех шило в одном месте

Lev
04.09.2017
14:47:21
Я вот ради баловства ща впиливаю котлин в энтерпрайз, так что не надо тут "правда"

Quantum Harmonizer
04.09.2017
14:47:29
потому что в Android до сих пор Java 6.5

Ivan
04.09.2017
14:48:02
потому что в Android до сих пор Java 6.5
Он остаётся таким и с котлином

Quantum Harmonizer
04.09.2017
14:48:32
6.5?
Ну, некоторые фичи Java 7 добавлены в 19 API, некоторые — в 26

Страница 303 из 982