@kotlin_lang

Страница 933 из 982
Bogdan
09.10.2018
09:59:08
Гарантии должны давать спецификации

Quantum Harmonizer
09.10.2018
09:59:22
Код не поможет, рантайм все меняет, даже в чистых фп яп, есть рантайм, которой плевал на то что там хочет программист
мы смотрим с того уровня абстракции, на котором эти условности вполне работают

Quantum Harmonizer
09.10.2018
10:00:08
Ну тогда val иммутабелен
нет, потому что можно написать get() = random.next***()

Google
Bogdan
09.10.2018
10:00:16
И не нудно тут про рефлексию

Andrey
09.10.2018
10:01:46
нет, потому что можно написать get() = random.next***()
Это такое и в Haskell есть. readLn, например. Правда с ним можно работать только в контексте IO монады.

При этом в Haskell всё вообще неизменяемое

Bogdan
09.10.2018
10:03:00
нет, потому что можно написать get() = random.next***()
А да, ну мой основной посыл если юзать хаки и хитрости, и не соблюдают контракты, то это уже плохо и тут не важно иммутабельно или нет

Денис
09.10.2018
10:03:21
нет, потому что можно написать get() = random.next***()
А эти сообржения как-то на практике мешают?

Konstantine
09.10.2018
10:03:22
Так и задумано, что контракты работают только с глобальными функциями?(

Алексей
09.10.2018
10:04:48
нет, потому что можно написать get() = random.next***()
Потому что никто не говорит, что это поле

Поле было бы иммутабельно, а это - свойство (property)

Bogdan
09.10.2018
10:05:31
Так это не хитрость и не хак.
В данном случаи согласен, val не иммутабелен, но я придерживаюсь такой политики, если у меня при одинаковых условиях, разный результат, то я сделаю функцию а не проперти

Google
Konstantine
09.10.2018
10:05:40
listOf() as MutableList грязный хак, за который нужно бить по рукам
Было бы забавно, если JB на первое апреля разлили обновление котлина, в котором вырезали бы эти касты )

Алексей
09.10.2018
10:05:49
Поле было бы иммутабельно, а это - свойство (property)
val означает, что вы не сможете снаружи явно повлиять на значение

Bogdan
09.10.2018
10:06:38
Mikhail
09.10.2018
10:07:03
я год пишу на котлине, ну больше в жава-стиле, но у меня сложилось впечателние, что котлин состоит из костылей и подпорок к ним, что он построен на этом

Алексей
09.10.2018
10:07:46
Как можно говорить о том, что метод - мутабелен?

Bogdan
09.10.2018
10:08:00
val иммутабелен в том плане, что ссылка неизменна, а вот то, на что она ссылается, может поменяться.
Ну да, но не хочется думать "ссылками", а хочется думать объектами

Quantum Harmonizer
09.10.2018
10:08:11
val иммутабелен в том плане, что ссылка неизменна, а вот то, на что она ссылается, может поменяться.
val ничего не знает про ссылку, можно переопределить геттер как угодно

Andrey
09.10.2018
10:08:27
Там даже ссылки-то как таковой нет, это метод get*, по-сути
Вот он и есть ссылка на значение. Сам метод не меняется.

Andrey
09.10.2018
10:08:52
Ну да, но не хочется думать "ссылками", а хочется думать объектами
Ну извините. В чистых ФП языках тоже приходится иногда мыслить ссылками.

Денис
09.10.2018
10:08:54
я год пишу на котлине, ну больше в жава-стиле, но у меня сложилось впечателние, что котлин состоит из костылей и подпорок к ним, что он построен на этом
Холивароёмкое однако заявление, но кажется такие вещи надо или разжёвывать в деталях (что и почему) :)

OlegKrikun
09.10.2018
10:09:04
Coverage 101% ?
Это когда всё покрыл, а потом ещё чутка написал тестов к тестам?

Quantum Harmonizer
09.10.2018
10:09:32
Mikhail
09.10.2018
10:09:59
Холивароёмкое однако заявление, но кажется такие вещи надо или разжёвывать в деталях (что и почему) :)
ну меня до сих пор напрягает, что тернарного оператора нет, но есть if который возвращает значение

Andrey
09.10.2018
10:10:05
Не понял
У вас get декларирует, где брать значение => он является ссылкой на значение

Google
Egor
09.10.2018
10:11:08
ну меня до сих пор напрягает, что тернарного оператора нет, но есть if который возвращает значение
Для начала, в натуральных ФП языках тоже нет тернарных операторов, а условный оператор, который является значением, это классика и очень удобно. Плюс уже объявили, что в Котлине будет тернарник, хотя зачем? :^\

Mikhail
09.10.2018
10:11:28
когда будет?! хотеть!

OlegKrikun
09.10.2018
10:11:50
Где объявили?

Денис
09.10.2018
10:11:50
Egor
09.10.2018
10:11:55
Бреслав на техтрейне рассказал, что они думают, как его внедрять

Денис
09.10.2018
10:12:01
Бреслав пару раз говорил, что наверное добавят, да.

Egor
09.10.2018
10:12:19
?
У меня те же эмоции

Bogdan
09.10.2018
10:12:32
?
?????

Алексей
09.10.2018
10:12:47
Я не понимаю, зачем нужен тернарник, когда есть if

Quantum Harmonizer
09.10.2018
10:12:48
Ладно, я понимаю, зачем нужны SAM-интерфейсы. НО ТЕРНАРНИК, БЛИН!

Алексей
09.10.2018
10:12:58
Только если от пасхалок спасать

Mikhail
09.10.2018
10:13:08
а зачем? :D
затем что if'ы меня не радуют

Egor
09.10.2018
10:13:18
Quantum Harmonizer
09.10.2018
10:13:20
где issue, можно задислайкать?

Nameless
09.10.2018
10:13:24
Ладно, я понимаю, зачем нужны SAM-интерфейсы. НО ТЕРНАРНИК, БЛИН!
тернарник в миллион раз лучше чем просто ифчик

Алексей
09.10.2018
10:13:26
Только если от пасхалок спасать
Но таких пасхалок только начинающие не знают

Egor
09.10.2018
10:13:28
типа, в сто миллионов раз читабельнее

Google
Mikhail
09.10.2018
10:13:47
ну нифига они не читабельнее

Quantum Harmonizer
09.10.2018
10:13:48
тернарник в миллион раз лучше чем просто ифчик
такой сильный аргумент, что в ответ достаточно сказать просто «нет»

Денис
09.10.2018
10:13:49
ну меня до сих пор напрягает, что тернарного оператора нет, но есть if который возвращает значение
серьёзная часть: ну это какое-то слишком слабое и специфичное заявление для "ВЕСЬ ЯЗЫК состоит из костылей и подпорок к ним" контрнаброс: это тернарник - костыль, а if as expression - стройно и логично!

Алексей
09.10.2018
10:13:52
Однако

Nameless
09.10.2018
10:14:03
lol ? “lol” : “ne-lol” if (lol) “lol” else “ne-lol” ну каммон

Mikhail
09.10.2018
10:14:17
ну меня до сих пор напрягает, что тернарного оператора нет, но есть if который возвращает значение
а я вот считаю, что тернарный оператор - костыль для if-ов не являющихся выражением

Admin
ERROR: S client not available

Алексей
09.10.2018
10:14:37
lol ? “lol” : “ne-lol” if (lol) “lol” else “ne-lol” ну каммон
Более того, можно это дело еще и в {} заключить и положить что-то внутрь

Nameless
09.10.2018
10:14:58
а я вот считаю, что тернарный оператор - костыль для if-ов не являющихся выражением
а лямбда в джаве костыль для анонимных классов и поэтому ненужны?

Egor
09.10.2018
10:15:06
lol ? “lol” : “ne-lol” if (lol) “lol” else “ne-lol” ну каммон
А как отнестись к людям, которые пишут condition ? exp1 : condition2 ? exp2 : exp3?

Mikhail
09.10.2018
10:15:08
я первый!
пардон, я не успеваю следить за потоком флуда

Алексей
09.10.2018
10:15:18
Это к слову о том, почему иф, а не ? … :…

Alexander
09.10.2018
10:15:43
Google
Egor
09.10.2018
10:15:59
бьём их обычно
Так зачем бить, если можно просто убрать возможность такое писать?

Mikhail
09.10.2018
10:16:09
Nameless
09.10.2018
10:16:31
А как отнестись к людям, которые пишут condition ? exp1 : condition2 ? exp2 : exp3?
А как отнестись к людям которые пишут if (condition) exp1 else if (condition2) else exp2 else exp3 там еще кажется какое-то неочевидное поведение получается, в паззлерах было

Алексей
09.10.2018
10:16:53
dimiii
09.10.2018
10:16:59
Что вы с этим тернарным, как писанной торбой носитесь. Лучше скажите, почему присваивание не сделали выражением?

Алексей
09.10.2018
10:17:19
а теперь то же самое с ифами
С ифами ты такое 1. Не пропустишь 2. Сможешь контролировать

Alexander
09.10.2018
10:17:21
А можно ссылку на это заявления Бреслва. А то может рано плачем?

Mikhail
09.10.2018
10:17:46
С ифами ты такое 1. Не пропустишь 2. Сможешь контролировать
в смысле? все так же как и с тернарными операторами

Алексей
09.10.2018
10:18:02
dimiii
09.10.2018
10:18:08
Что вы с этим тернарным, как писанной торбой носитесь. Лучше скажите, почему присваивание не сделали выражением?
Вот чего точно не хватает в языке, например в таких случаях: when(some=fun()) {.... cases with some }

Алексей
09.10.2018
10:18:12
Можно туда поведение встроить?

Alexander
09.10.2018
10:18:20
Слушайте, идите сюда: https://discuss.kotlinlang.org/t/ternary-operator/2116

Mikhail
09.10.2018
10:18:20
Можно {} добавить?
и что они меняют?

Alexander
09.10.2018
10:18:24
Что вы с этим тернарным, как писанной торбой носитесь. Лучше скажите, почему присваивание не сделали выражением?
Обычно говорилось, что ошибок потенциальных из-за этого много, а полезных кейсов не так много.

Egor
09.10.2018
10:18:24
А можно ссылку на это заявления Бреслва. А то может рано плачем?
Нет, нельзя, в публичный доступ ещё не выкладывали видеозаписи

Алексей
09.10.2018
10:18:48
и что они меняют?
То, что там можно прописать нормальный блок ифа, а не одну команду/вызов/переменную

Alexander
09.10.2018
10:18:54
Пусть сделают компайлер плагином для страждущих

Алексей
09.10.2018
10:18:54
Или я что-то не понимаю?

Egor
09.10.2018
10:19:05
Разве что вот https://habr.com/company/jugru/blog/422921/

Mikhail
09.10.2018
10:19:26
То, что там можно прописать нормальный блок ифа, а не одну команду/вызов/переменную
ну если нужно блок писать - то есть ифы, да, а если одна строка, то нафига иф? иф еще читать нужно

Andrey
09.10.2018
10:19:53
он является поведением
Ну ссылка - тоже поведение вида: "значение ищи там"

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