@kotlin_lang

Страница 934 из 982
Алексей
09.10.2018
10:20:07
Я молчу о том, что вопрос в котлине - контрольный символ

Mikhail
09.10.2018
10:20:44
Прочитать один вопрос или слово if
там там не только if, еще (), потом else.. куча текста

Quantum Harmonizer
09.10.2018
10:21:15
Andrey
09.10.2018
10:21:42
демагогия какая-то
Нет. Просто рассматриваю понятия ссылка с точки зрения теории

Google
Алексей
09.10.2018
10:21:49
там там не только if, еще (), потом else.. куча текста
Даже если так, эта куча гораздо более явная

OlegKrikun
09.10.2018
10:22:12
тернарный более явный имха

Egor
09.10.2018
10:22:36
Явное лучше неявного, а в тернарном выражении ещё отыщи разделительные символы - вопрос, двоеточие, они же даже не подсвечиваются

OlegKrikun
09.10.2018
10:22:37
в ифе мусор визуальный

Денис
09.10.2018
10:22:39
демагогия какая-то
Писать get() у объекта, возвращающий случайное неконсистентное значение - тоже неоднозначное в общем случае решение. А редкие специальные случаи, когда это приемлемо, можно считать исключениями, как мне кажется. :)

Mikhail
09.10.2018
10:22:57
о, нашел еще фигню, на которую изредка натыкаюсь, val list: List<Long>=ArrayList()

Quantum Harmonizer
09.10.2018
10:23:00
У вас get декларирует, где брать значение => он является ссылкой на значение
Может и нет. Он может бросить исключение, например. Да, можно весь мир рассмотреть с той позиции, что всё — ссылка, только это ничего нам не даст.

Денис
09.10.2018
10:23:16
в ифе мусор визуальный
А тернарник тяжело читается и сливается, даже если в ИДЕ есть подсветка, односимвольные операторы плохо выделяются визуально.

Andrey
09.10.2018
10:23:48
Может и нет. Он может бросить исключение, например. Да, можно весь мир рассмотреть с той позиции, что всё — ссылка, только это ничего нам не даст.
Может бросить. Это значит, что ссылка не резолвится. Нет, не всё есть ссылка. Если для val объявляется кастомный геттер - значит мы хотим, чтобы значение по ссылке резолвилось. При этом мы не можем val инициализировать конкретным значением.

Egor
09.10.2018
10:23:55
Google
Mikhail
09.10.2018
10:24:08
val list = arrayListOf<Long>()
да не, пофиг что, какой тип, <Any>=whatEver() - не работает, нужен пробел

Денис
09.10.2018
10:24:43
Mikhail
09.10.2018
10:25:33
я привык писать как пойдет, потом наживать форматирование и за меня ide расставляет пробелы, но нет, тут ошибка компиляции

Nameless
09.10.2018
10:25:54
недавно прекрасный ифчик нашел



Mikhail
09.10.2018
10:26:34
Денис
09.10.2018
10:26:38
Типа да, можно найти способ неудачно написать выражение, при котором возникают какие-то несуразности

А даже если не с листом, у тебя ж тип разрезолвится из выражения справа?

Egor
09.10.2018
10:27:09
недавно прекрасный ифчик нашел
а что, с тернарником было бы лучше?

Mikhail
09.10.2018
10:27:13
ну может мне хочется его руками написать

Nameless
09.10.2018
10:27:27
а что, с тернарником было бы лучше?
к тому что в умелых руках все можно превратить в нечитаемое

Egor
09.10.2018
10:27:54
к тому что в умелых руках все можно превратить в нечитаемое
тернарник изначально дозволяет больше нечитаемой свободы, чем иф

Денис
09.10.2018
10:28:02
ну может мне хочется его руками написать
Любой язык можно сломать очень странными относительно парадигмы языка желаниями. :)

Nameless
09.10.2018
10:28:05
а котлин во многом сокращает синтаксис джавы, только в тернарниках не сокращает (мне лично это не биг дил)

Mikhail
09.10.2018
10:28:36
Andrew
09.10.2018
10:28:41
А день начинался с заявлений, что кому-то не хочется читать полотна бессмысленного трёпа. Потом набросили о тернарнике — и понеслось.

Nameless
09.10.2018
10:29:03
ну это же чат, должен быть треп

Денис
09.10.2018
10:29:06
не писать пробел - очень странное желание?
Писать объявление+присвоение переменной так - очень странное желание, кажется

Google
Nameless
09.10.2018
10:29:24
лучше так чем ответы на вопросы ленивых джунов

Andrew
09.10.2018
10:29:34
Давайте заведём отдельный чат "Тернарник в Kotlin" и будем туда направлять всех желающих пообсуждать, как обычно отправляют в @pofftop?

лучше так чем ответы на вопросы ленивых джунов
Ленивых джунов, по-моему, меньше, чем любителей пофлеймить, их игнорировать проще, чем 100+ сообщений в очередной раз.

Nameless
09.10.2018
10:30:42
Ленивых джунов, по-моему, меньше, чем любителей пофлеймить, их игнорировать проще, чем 100+ сообщений в очередной раз.
ну так их тут меньше так как народ флеймится, и ленивые джуны понимают что они не по адресу

Alexander
09.10.2018
10:30:48
А можно ссылку на это заявления Бреслва. А то может рано плачем?
Видео пока не в публичном доступе, поэтому вот транскрипт для этого вопроса (Сессия блиц-вопросов Бреславу на TechTrain): - Здравствуйте Андрей. If-else вот этот вот, двоеточие, вопросик, когда будут реализованы? - А, окей, окей. Да, значит у нас... У нас в последнее время с коммьюнити и всеми другими людьми, которые вообще могут задавать вопросы, есть такая игра: вот предлагают задать вопросы и сразу же кто-нибудь спрашивает про тернарный оператор. Значит, я не могу пообещать точно, но наверное тернарный оператор всё-таки появится в какой-то момент в Котлине относительно скоро. Но не очень скоро, завтра не появится. - Это из-за того, что вас просят, или вам самим хочется? - Ну, мне не хочется, но просят-то не просто так. Действительно, удобно иметь тернарный оператор. Я вам верю, удобно. Его не так-то просто удобно впихнуть в язык, но вроде мы придумали как примерно, так что скорее всего всё получится.

Andrew
09.10.2018
10:30:59
Ну так вся проблема в том, что его добавляют туда, где он не нужен
Я-то согласен, но когда последний раз такой спор привёл к результатам? :)

Leonid
09.10.2018
10:31:01
Да спорить нужен тернарник или нет, всё равно что спорить, писать ли типы слева или справа

Andrew
09.10.2018
10:31:08
This ^

Denis
09.10.2018
10:31:33
Добрый день. Подскажите как правильно с помощью операторов коллекций Котлина реализовать след. задачу: есть 2 списка int. В первом 10 элеменов, во втром допустим 3. Нужно из первого списка убрать все элементы, которые есть во втором списке(если они есть). Я так понимаю нужно закомбинить .filter и .foreach, но чет у меня неправильно выходит походу. Вот код: val list2 = idLongList.filter { oldId -> transactionState.unabledFines.forEach { oldId != it } }

Alexander
09.10.2018
10:31:35
Видео пока не в публичном доступе, поэтому вот транскрипт для этого вопроса (Сессия блиц-вопросов Бреславу на TechTrain): - Здравствуйте Андрей. If-else вот этот вот, двоеточие, вопросик, когда будут реализованы? - А, окей, окей. Да, значит у нас... У нас в последнее время с коммьюнити и всеми другими людьми, которые вообще могут задавать вопросы, есть такая игра: вот предлагают задать вопросы и сразу же кто-нибудь спрашивает про тернарный оператор. Значит, я не могу пообещать точно, но наверное тернарный оператор всё-таки появится в какой-то момент в Котлине относительно скоро. Но не очень скоро, завтра не появится. - Это из-за того, что вас просят, или вам самим хочется? - Ну, мне не хочется, но просят-то не просто так. Действительно, удобно иметь тернарный оператор. Я вам верю, удобно. Его не так-то просто удобно впихнуть в язык, но вроде мы придумали как примерно, так что скорее всего всё получится.
заль

Mikhail
09.10.2018
10:32:28
OlegKrikun
09.10.2018
10:32:32
Денис
09.10.2018
10:32:50
Ну спор "тернарник vs if-expression" действительно бесполезный, вот только первоначальная цепочка заявлений была "котлин состоит из костылей и подпорок к ним, что он построен на этом<...> например, там нет тернарного оператора"

Leonid
09.10.2018
10:33:28
опасное заявление, может очередную волну флейма вызвать =)
Мне один товарищ жаловался, что мол зачем типы справа, это ведь целых четыре лишних символа писать для val

Egor
09.10.2018
10:34:40
Вообще-то система типов (кроме некоторых случаев) в Котлине очень хорошо сделана. В среднем, да, мы пишем больше символов из-за val/var, но зато экономим ОЧЕНЬ много, когда типы выводятся автоматически

OlegKrikun
09.10.2018
10:35:06
Мне один товарищ жаловался, что мол зачем типы справа, это ведь целых четыре лишних символа писать для val
меня это больше в смешанных проектах (котлин/джава) беспокоит, под утро бывает тяжело понять как писать в этом конкретном файле =)

Денис
09.10.2018
10:35:44
как дефолтное значение аргумента метода сойдет?
С одной стороны - ну да, с другой - что-то мне кажется, что довольно редко можно подобрать кейс, где можно нормально дать дженерик-аргументу метода дефолтное значение. Ну то есть они есть, конечно, эти случаи, но кажутся мне довольно специальными.

Google
Денис
09.10.2018
10:37:24
вроде речи не было о дженерик
Проблема же в склейке закрывающейся угловой скобки и = была.

Quantum Harmonizer
09.10.2018
10:38:04
eshch
09.10.2018
10:39:01
Что нам обсудить ? Мы говорим ненужно, ты нужно, мы тебе "а для чего, как часто используешь", ты "зачем мне пруфы давать". На этом все, извини
я не говорил зачем мне пруфы давать. я обеснил почему мне кажется это было бы хорошим дополнением и какие пруфы нужны для моих аргументов мне неясно, т.к. количественные аргументы я не затрагиваю. кратко: тру избыточен, удобный дефолт, в принципе можно и функцию стандартной библиотеки.

Egor
09.10.2018
10:39:33
а, ну вот банально param: List<X> = emptyList()
Так дженерик тип и у конструктора можно указать

Admin
ERROR: S client not available

Quantum Harmonizer
09.10.2018
10:40:13
Так дженерик тип и у конструктора можно указать
вообще нельзя, но не понимаю, при чём тут это

Egor
09.10.2018
10:41:41
вообще нельзя, но не понимаю, при чём тут это
Сейчас проверю При том, что необязательно дженерик тип указывать у объявления типа, если очень хочется избежать склейки

Andrew
09.10.2018
10:42:24
я не говорил зачем мне пруфы давать. я обеснил почему мне кажется это было бы хорошим дополнением и какие пруфы нужны для моих аргументов мне неясно, т.к. количественные аргументы я не затрагиваю. кратко: тру избыточен, удобный дефолт, в принципе можно и функцию стандартной библиотеки.
"мне кажется" — это не аргумент. Уже несколько человек отметилось с мыслью, что это плохая идея. Предложили сходить в #stdlib и пообщаться там, получив более релеватные ответы, если текущий чат не устраивает. В худшем случае, если это кажется таким полезным, но сообщество не понимает, можно написать одну несчастную функцию forever(...) и использовать её, расстраиваясь, что язык хреновый. Что ты тут-то до сих пор делаешь, если видишь, что дискуссия в тупик давно зашла?

Quantum Harmonizer
09.10.2018
10:42:26
eshch
09.10.2018
10:43:31
Вот чего точно не хватает в языке, например в таких случаях: when(some=fun()) {.... cases with some }
причем с ограничением области видимости переменной блоком when

не оч понел о чем ты

Egor
09.10.2018
10:44:15
а откуда он возьмётся, если не указать? В параметрах не выведется.
А, ну да Странно, мне всегда казалось, что можно написать val list: List = emptyList<X>()

Andrew
09.10.2018
10:45:12
Да, касательно присваивания-выражения согласен, чуть ли не единственная штука, которая огорчает. И то решается несчастным while(true) { val value = expr ?: break; ... }.

eshch
09.10.2018
10:46:42
Не нужно, ибо если кому-то вдруг понадобится делать кучу бесконечных циклов, всегда можно сделать так: inline fun loop(action: () -> Any?) { while (true) action() } ... loop { println("foo") }
да, но вопрос почему в руби это в стдлиб, в расте это ключевое слово (как я понел). мне кажется, что вайл тру слишком коряво само по себе, а бесконечный цикл часто возникает, когда что-то ручками делаешь.

Google
eshch
09.10.2018
10:47:28
Andrew
09.10.2018
10:48:01
ой вэй а нельзя просто фигурные скобки? даже в си можно. до этого кстати do while false использовали
В котлине тоже можно. Только это ж не цикл. UPD: а ведь действительно нельзя, это ж определение лямбды. Oh well, значит настолько часто мне эта фича нужна.

eshch
09.10.2018
10:48:09
> часто возникает нет /thread
вопрос частоты не единственный. если это все что тебя волнует, я тебя понел, спасибо.

Nameless
09.10.2018
10:48:35
> часто возникает нет /thread
часто, с корутинами например

бесконечно раз в 10 сек что-нибудь чекаем пока скоп не помер

Andrew
09.10.2018
10:49:09
часто, с корутинами например
С корутинами частно должно возникать while(isActive), а не бесконечные циклы.

Nameless
09.10.2018
10:49:20
что за isActive, си стайл какой-то, у нас же структурная канкаренси

Денис
09.10.2018
10:50:37
вопрос частоты не единственный. если это все что тебя волнует, я тебя понел, спасибо.
1) Про частоту использования мы всё сказали 2) Импакт равен шести символам и ничему более То есть да, микроштука, которая регулярно проявляется только на специфичном срезе приложений, полностью синонимичная короткой и однозначной более популярной конструкции языка - не нужна.

eshch
09.10.2018
10:50:38
В руби столько сахара, что уже вкус языка не чувствуешь, так что не показатель. Насчёт раст - хз, не смотрел его.
какой-то странный аргумент про сахар. пишите на жаве, а то в котлине стока сахара

Andrew
09.10.2018
10:51:07
что за isActive, си стайл какой-то, у нас же структурная канкаренси
И то верно. Я со времён её введения корутинами не занимался, увы.

Vladimir
09.10.2018
10:51:09
ой вэй а нельзя просто фигурные скобки? даже в си можно. до этого кстати do while false использовали
Можно run { }. А для себя можно было бы уже давно написать loop { } и закрыть тему.

Quantum Harmonizer
09.10.2018
10:51:25
Да, уже раза три предложили.

Денис
09.10.2018
10:51:40
Quantum Harmonizer
09.10.2018
10:51:57
Думаю, больше.
Новая тема для спора!

eshch
09.10.2018
10:52:15
Думаю, больше.
а вы не пробовали понять что я не про себя а про стдлиб?

Алексей
09.10.2018
10:52:22
Новая тема для спора!
Вообще-то, четыре

Vladimir
09.10.2018
10:52:35
А выглядеть он должен, как мне кажется, так: fun loop(block: () -> Unit): Nothing

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