@kotlin_lang

Страница 739 из 982
Alexey
04.07.2018
18:23:15
ребят, а кто знает * - spread оператор как себя ведет если список пустой?

dimiii
04.07.2018
18:23:41
Эй там, в жетбрейнс, снимите уже серию роликов для миллениалов, страдают же

Anton
04.07.2018
18:23:51
на степике же есть

че то

Google
Sander
04.07.2018
18:25:22
@dimiiim о спасибо

dimiii
04.07.2018
18:25:32
@dimiiim о спасибо
Антону спасибо

Alexey
04.07.2018
18:33:24
Ребята, вопрос возможно не совсем по теме, но не очень понимаю куда копать - открываю intellij, хочу создать новый android проект. На финальной стадии где мне дают настроить new empty activity жму next, окно ide трясется (будто сигналит что что-то не так), но никаких ошибок не рисует. Как понять что ему не нравится? (osx)

Mayor
04.07.2018
18:34:57
osx или macos?

Alexey
04.07.2018
18:36:21
macos, да

Alexander
04.07.2018
18:43:21
macos, да
Поставь Linux

Sander
04.07.2018
18:48:13
зачем? Linux, я сам люблю эту оську очень сильно, но предпочита работать за маком.

dimiii
04.07.2018
18:49:36
f(*arrayOf())
Отличное наблюдение !!!!! Плохо себя ведет. Т/е сообщает об ошибке, но не о той, о которой следовало бы. Хотя трудности начинаются уже с arrayOf() - для пустого массива все равно нужно специфицировать тип, тогда можно считать, что, например, для arrayOf<String>() * должен вернуть пустой кортеж, что позволяет применять функции типа () -> T. Ну или ругнуться подходящим образом, если непозволительно. Вместо этого, невнятная ошибка, что - то вроде: too many arguments for public final fun test(): Unit defined in Line_42 (), кстати, отождествляется с Unit во многих взрослых языках и является логической истиной https://en.wikipedia.org/wiki/Curry%E2%80%93Howard_correspondence#General_formulation В Котлине это не так, что тоже странно

Alexey
04.07.2018
18:50:44
Ага, смог откопать логи

Google
Alexey
04.07.2018
18:50:57
null java.lang.NullPointerException at com.android.tools.idea.sdk.wizard.InstallSelectedPackagesStep.onEntering(InstallSelectedPackagesStep.java:143) at com.android.tools.idea.wizard.model.ModelWizard.goForward(ModelWizard.java:303) Ну и далее по списку

Oleg
04.07.2018
18:52:19
хм

щас будет дурацкий совет

а почему бы не пользоваться AndroidStudio?

dimiii
04.07.2018
18:53:42
а если тип не специфицировать то такая ошибка будет когда передаешь пустой массив в варарг?
Так невозможно же: >>> arrayOf() error: type inference failed: Not enough information to infer parameter T in inline fun <reified T> arrayOf(vararg elements: T): Array<T> Please specify it explicitly. arrayOf() ^

Насчет, отношения () с Unit, возможно я сделал поверхностные выводы по синтаксису >>> typealias A = () -> Unit >>> typealias B = Unit -> Unit ... error: unexpected tokens (use ';' to separate expressions on the same line) typealias B = Unit -> Unit ^

Quantum Harmonizer
04.07.2018
20:11:45
Для меня, как джависта, всё логично :)

Хмм, stackless exception? https://twitter.com/JakeWharton/status/1014598257044086789?ref_src=twcamp%5Ecopy%7Ctwsrc%5Eandroid%7Ctwgr%5Ecopy%7Ctwcon%5E7090%7Ctwterm%5E3

dimiii
04.07.2018
20:16:29
Но кстати, не то чтобы совсем нет кортежей - вот здесь например: >>> typealias A = () -> Unit

dimiii
04.07.2018
20:38:45
Kirill
04.07.2018
20:40:41
() ?
Но это же кусок функционального типа...

dimiii
04.07.2018
20:41:11
Ну ок, fun some() {}

Quantum Harmonizer
04.07.2018
20:41:33
() ?
Это пустой список параметров

dimiii
04.07.2018
20:46:37
Лучшая джава

Google
Alexandr
04.07.2018
21:47:59


Quantum Harmonizer
04.07.2018
21:48:45
Можно, через имя класса, не через экземпляры

Alexandr
04.07.2018
21:49:15
Можно, через имя класса, не через экземпляры
да, это я в примере и показал. Но почему через экземпляр то нельзя?)

Quantum Harmonizer
04.07.2018
21:49:39
Alexandr
04.07.2018
21:50:08
Потому что их нет экземпляре, они в классе
на джаве это работает и с экземплярами

Quantum Harmonizer
04.07.2018
21:50:39
Alexandr
04.07.2018
21:51:47
К сожалению, да
Так а что в этом плохого? Не пойму почему нельзя то?) я сконвертил джава код в котлин... а он это даже никак не обработал..

Alexandr
04.07.2018
22:04:27
Джошуа Блох расписал в своей книге
Но это все равно странно.. т.к. разработчики заявили о совместимости в обе стороны. А тут даже конвертор не может это правильно из джавы в котлин транслировать..

Alexey
04.07.2018
22:32:24
а почему бы не пользоваться AndroidStudio?
Да наверное так и сделаю, у меня приложуха 2 прихлопа 3 притопа

dimiii
05.07.2018
10:07:49
Это пустой список параметров
Я понимаю, что на грани троллинга, но не могу сдержаться. Какой тип домена у таких функций? fun kotlinIsBetterJava() {} fun <T> kotlinIsBetterJava1(arg1: T) {} fun <S, T> kotlinIsBetterJava2(arg1: T, arg2: S) {} Почему так сделано? Почему не сделано нормально?

dimiii
05.07.2018
10:09:51
f : X -> Y, домен - X, кодомен - Y.

Quantum Harmonizer
05.07.2018
10:10:46
f : X -> Y, домен - X, кодомен - Y.
не уверен, что эта терминология здесь применима

Google
Boris
05.07.2018
10:11:25
f : X -> Y, домен - X, кодомен - Y.
А теперь применительно к котлину

dimiii
05.07.2018
10:11:47
не уверен, что эта терминология здесь применима
Мне это не нравится, математика в нашей части Вселенной всё та же.

Bogdan
05.07.2018
10:12:04
Вселеная тут не причем

dimiii
05.07.2018
10:12:37
А теперь применительно к котлину
fun square(x: Int) = x * x - все же согласны, что это функция на множестве целых чисел, с отображением в множество целых чисел ( с разумными ограничениями)

Bogdan
05.07.2018
10:12:56
dimiii
05.07.2018
10:14:06
тогда где это "нормально", вкаком яп
Я к тому упоминаю математику, что на уровне денотационной семантики, это применимо к любому языку.

Quantum Harmonizer
05.07.2018
10:14:14
(Unit) (Object, Object) :)
но () далеко не эквивалентно (Unit)

dimiii
05.07.2018
10:15:13
(Unit) (Object, Object) :)
И вроде есть понятие кортежей, и вот их нет. (Unit) - кстати правильно будет () - некий-пустой-список-аргументов (махание руками)

ладно, умолкаю

Kirill
05.07.2018
10:16:19
И вроде есть понятие кортежей, и вот их нет. (Unit) - кстати правильно будет () - некий-пустой-список-аргументов (махание руками)
Я могу поискать хорошую статью про систему типов в джаве и отсутствие кортежей (Читал когда-то давно)

ладно, умолкаю
Ты же знаешь, как в скале сделаны кортежи?:)

Kirill
05.07.2018
10:17:28
Поищи плиз, нет не знаю
Там самый большой tuple на 22, кажется, аргумента :)

И знаешь почему?:)

dimiii
05.07.2018
10:18:28
И знаешь почему?:)
Ну в ограничения байткода jvm упирается, предположу

Kirill
05.07.2018
10:19:15
Ну в ограничения байткода jvm упирается, предположу
По сути да. Особенно смешно наблюдать это в автокомплишн списке в идее

Google
Kirill
05.07.2018
10:23:16
Хотите, чтобы было как на Украине^W^W в скале?? :)

https://github.com/Kotlin/KEEP/blob/functionn-jvm/proposals/functional-types-with-big-arity-on-jvm.md

Igor
05.07.2018
10:32:29
А вроде бы Бреслав думает над их добавление в котлин (типа дата-саентистам нужно)

Igor
05.07.2018
10:33:15
Переосмыслив видимо

Boris
05.07.2018
10:34:05
Были, да

И порой они и правда бывают полезными

dimiii
05.07.2018
10:39:22
По-чесноку, data class и есть те же кортежи (разве что пустого data class не создать). https://en.wikipedia.org/wiki/Product_type

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