@kotlin_lang

Страница 784 из 982
Quantum Harmonizer
31.07.2018
14:34:04
хуже маркера сложно что-то придумать

Andrew
31.07.2018
14:34:32
А для when по sealed разве не тот же instanceof используется?

sealed даже для использующих его jar-ников перестаёт быть таковым, ибо компилятор теряет гарантию, что он перечислил всех наследников и больше наследников быть не может.

Quantum Harmonizer
31.07.2018
14:39:24
А для when по sealed разве не тот же instanceof используется?
где-то была задача сделать switch на интах, но я не нахожу

Google
Andrew
31.07.2018
14:40:10
ну, если else забыть писать то скорей всего так и будет
Идея в этом месте варнингом плюётся как раз.

Quantum Harmonizer
31.07.2018
14:40:15
ну, если else забыть писать то скорей всего так и будет
а что осмысленного можно сделать в else? Упасть на рантайме?

Andrew
31.07.2018
14:41:00
а что осмысленного можно сделать в else? Упасть на рантайме?
Как говорится, предупреждён -- значит вооружён. Мало ли, захочешь ли ты это проглотить или действительно упасть.

Konstantin
31.07.2018
14:41:23
а что осмысленного можно сделать в else? Упасть на рантайме?
в контексте ведроида например делегировать обработку команд к хосту фрагменту или активити

Andrew
31.07.2018
14:41:37
А может, и сообщить, куда полагается ?

Ну то есть sealed по сути от маркер-интерфейса по производительности не отличается ничем и полезен только в рамках одного модуля и только для того, чтобы компилятор по пальцам ударил.

Konstantin
31.07.2018
14:42:48
Ну то есть sealed по сути от маркер-интерфейса по производительности не отличается ничем и полезен только в рамках одного модуля и только для того, чтобы компилятор по пальцам ударил.
иерархия классов становится более ограниченой, скорей всего как то оптимизируется. требование указывать наследников в том же файле не просто так

Andrew
31.07.2018
14:45:44
@KirillTim, признавайся, оптимизируется там что-то или нет?)

Kirill
31.07.2018
14:46:44
@KirillTim, признавайся, оптимизируется там что-то или нет?)
это не ко мне :) я не знаю, честно говоря

Google
Andrew
31.07.2018
14:47:31
это не ко мне :) я не знаю, честно говоря
Эх. Я надеялся, инсайды соседних команд шарить тут будешь... ?

Alexandr
31.07.2018
14:48:52
Надо собрать, декомпилить и посмотреть, что как дети то :) где тут инженеры?)

Будь я у компа уже бы пошарил

Kirill
31.07.2018
14:49:14
Alexandr
31.07.2018
14:49:27
Andrew
31.07.2018
14:49:32
Но нам не скажешь, потому что у нас докУментов нету, я полагаю?)

Alexandr
31.07.2018
14:50:41
не скажу
Э, сказал а- говори бэ)

Andrew
31.07.2018
14:50:43
Да ладно, 1.3-M1 есть -- и на том спасибо.

Мне больше интересно, будут ли громкие новости по K/N на KotlinConf ?

Konstantin
31.07.2018
14:54:55
заглянул еще раз в доку и там ... Note that classes which extend subclasses of a sealed class (indirect inheritors) can be placed anywhere, not necessarily in the same file.

эх вот бы ртфм в 2018

Quantum Harmonizer
31.07.2018
14:55:07
Andrew
31.07.2018
14:55:43
декомпильнут опенсорсный компилятор?
Я полагаю, декомпильнуть результат работы компилятора.

Quantum Harmonizer
31.07.2018
14:56:10
Я полагаю, декомпильнуть результат работы компилятора.
а, ну это вообще обязательное занятие в начале знакомства

Bogdan
31.07.2018
14:58:30
+
ну я декомпилил простенький сайлед класс, ничего "оптимизируещего" не увидел, разве что в рантайме, но мне кажется, тут заслуга будет не котлина и сайлед классов

Google
Quantum Harmonizer
31.07.2018
14:59:44
Не, надо while декомпильнуть
а что кроме ifeq goto можно увдеть?

Alexandr
31.07.2018
14:59:52
В рантайме будет просто набор классов это же jvm

Bogdan
31.07.2018
15:00:14
все верят в "магию"

а сайлед классы досих пор запрещаются наследоватся из разных файлов, ну если не повешать анноташку ?

Alexandr
31.07.2018
15:01:32
а что кроме ifeq goto можно увдеть?
Например проверку на выход из набора классов. Null checks как в рантайме работают? Идет проверка аргумента в utility классах

Quantum Harmonizer
31.07.2018
15:05:02
Bogdan
31.07.2018
15:05:29
так о нём и речь
а я про байт-код )

Quantum Harmonizer
31.07.2018
15:05:45
а я про байт-код )
ну, компилятор генерирует байт-код :)

Bogdan
31.07.2018
15:24:05
Например проверку на выход из набора классов. Null checks как в рантайме работают? Идет проверка аргумента в utility классах
ну кидается ексепшен, и генерит код получше чем ты пишешь (но тут компилятор), в остальном обычный if-else

Bogdan
31.07.2018
15:26:45
корчое не болейте ими, это упрощения для програмиста, как когда-то было сказано прокаченые энумы

Alexandr
31.07.2018
15:29:26
@SchFuntik ты мне сейчас что то хочешь доказать или убедить в чем то?

Quantum Harmonizer
31.07.2018
15:29:32
корчое не болейте ими, это упрощения для програмиста, как когда-то было сказано прокаченые энумы
а где болезнь-то? Нам котлин затем и нужен чтобы компилятор подстраховал, где можно, а не чтобы делал что-то особенное)

Mikhail
31.07.2018
15:56:33
Кстати, где можно посмотреть развернутый ответ на вопрос "Почему в Kotlin нельзя определять свои операторы?", только без стандартных ответов "потому что Kotlin не Scala"

Anton
31.07.2018
15:57:44
типа набо для оператор оверлоадинг ограничен или что?

Google
Mikhail
31.07.2018
16:02:40
потому-что котлин не с++ ?
А c++ разве можно определять операторы?

Bogdan
31.07.2018
16:02:57
Igor
31.07.2018
16:03:13
Кстати, где можно посмотреть развернутый ответ на вопрос "Почему в Kotlin нельзя определять свои операторы?", только без стандартных ответов "потому что Kotlin не Scala"
Потому что котлин НЕ функциональный язык (с) Бреслав ? А для всего остального есть методы (плюс базовый набор операторов).

Mikhail
31.07.2018
16:04:17
а инфиксные функции не помогут?
1) Сложно читать код на инфиксных функциях, ты не отделишь данные от операций над ними (визуально) 2) нет приоритетов

Admin
ERROR: S client not available

Mikhail
31.07.2018
16:05:54
Мне казалось что у кастомных операторов только один недостаток - их хрен загуглишь, но ведь можно принудить давать всем операторам человекочитаемые имена

Konstantin
31.07.2018
16:06:17
ну а чем они будут тогда отличаться от инфиксных функций? )

Mikhail
31.07.2018
16:06:29
А неизвестный символ читать проще?
Если у тебя есть знакомый тебе dsl, то чтение облегчается в разы

ну а чем они будут тогда отличаться от инфиксных функций? )
_альтернативные_ человекочитаемые имена*

Mi
31.07.2018
16:07:49
Тут скорее всего дело в каком-нибудь компромиссе между хорошей фичей и последствиями от неё же

Bogdan
31.07.2018
16:08:02
вы представляеете во что код превратится, когда каждая библиотека будет придумывать свои операторы

Bogdan
31.07.2018
16:10:04
единственое что мне не хватая так это сетера

Dimon
31.07.2018
16:10:10
Контрл клик по оператору

Mikhail
31.07.2018
16:10:13
вы представляеете во что код превратится, когда каждая библиотека будет придумывать свои операторы
Если есть алиасы, как я описал выше, то никто не запрещает использовать их. Ты ведь и сейчас можешь писать list + element, а можешь list.plus(element)

Google
OlegKrikun
31.07.2018
16:10:20
Bogdan
31.07.2018
16:10:47
Контрл клик по оператору
ну тогда "декларативностью" и пахнуть не будет

Dimon
31.07.2018
16:11:00
Зато красиво

Bogdan
31.07.2018
16:11:34
Зато красиво
угу, но котлин идет в сторону прагматичности, не буду судить как получается, но мне пока нравится

В Scala?)
нет в котлин если появится

Mi
31.07.2018
16:13:32
Опять же если оператор определен, то смысл использовать алиас

Dimon
31.07.2018
16:13:32
смысл тогда в них ? одни будут писать по одному, другие по другому, по факту Г код
Если работать в одиночку, а не в команде, то никаких проблем не вижу

Bogdan
31.07.2018
16:13:56
когда нет стандарта - это хаос, вот представет каждый будет писать со своими отсупами, со своим кодстайлом, своим наименованием

Если работать в одиночку, а не в команде, то никаких проблем не вижу
ну для большого проекта в одиночку не поработаешь, и я увижу как вы через месяц будете смотреть на свой код, и пытатся вспомнить под чем вы были когда это писали

ну и по факту тогда зачем будет нужна скала ?

Bogdan
31.07.2018
16:15:55
У меня очень хорошая память))
сожалению не всем так повезло)

Mikhail
31.07.2018
16:36:39
Опять же если оператор определен, то смысл использовать алиас
Тут приводили пример что с субъективной точки зрения кого-либо операторы могут выглядеть неэстетично

как раз тут можно и нужно дать право выбора

Bogdan
31.07.2018
16:39:04
а вот еще один минус, придумали оператор, ок. JB решила тожее ввести оператор или ключевое слово с такимже именем, и вы решили перейти на новую версию. Вопрос, как быстро вы перейдете.

Daniil
31.07.2018
16:39:55
У меня очень хорошая память))
Или проекты мелкие... Бывает только на поиск чего-то уходит по пол часа, не то что бы вспомнить...

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