@kotlin_lang

Страница 588 из 982
Vladimir
16.03.2018
07:18:37
можно здець иногда спосить вопросы на английском или это запрешено?
А зачем задавать вопросы на английском в русском чате, если ты знаешь русский?

Quantum Harmonizer
16.03.2018
07:19:28
А зачем задавать вопросы на английском в русском чате, если ты знаешь русский?
Ну английский знают многие. Лучше на нём, чем на ломаном русском.

Anton
16.03.2018
07:19:31
может он переводит

Vladimir
16.03.2018
07:19:50
может он переводит
Да, сразу не допёрло(

Google
Michael
16.03.2018
07:24:24
а я толко сейчас нашел эта группа и не знал што это только русский чат.. я понемаю русский язык но не все оссобенно фразы котрые программистов говорят друг другом

Michael
16.03.2018
07:25:52
ok, thanks.. don't have any questions right now since I'm not programming today but good to know for the future

Telegram is much more convenient than firing up slack) are coroutines out of the experimental stage now?

Quantum Harmonizer
16.03.2018
07:28:58
But they are stable and usable even now.

Michael
16.03.2018
07:31:26
yes I've been using them quite a bit was just wondering as to the status - haven't been programming for a few months in Kotlin

Тимур
16.03.2018
08:02:36
С другой стороны да) Тут момент какие именно исключение - от системы или определенное с параметрами. Так то откуда угодно прилетает, особенно в андроиде. Но тут вопрос о поддержки специального вида исключений - которые являются частью ответа и говорящие что дальше делать ничего не нужно что связано с результатом ответа
Если исключение часть ответа бизнес логики, то документировать, либо даже перенести эту логику в возвращаемое значение. Checked exceptions в этом отношении не очень помогают, на самом деле. Обычно вылетает какой-нибудь DatabaseException, а все подробности внутри message. И дальше что хочешь с этим, то и делай, хоть парси его регуляркой, если нужно красиво показать пользователю что именно не так.

Kira
16.03.2018
09:11:27
Кстати, задумался, у котлина есть собственные мультиплатформенные сокеты?

Vladimir
16.03.2018
09:15:03
Kira
16.03.2018
09:16:11
Пока нет. А будут скорее всего в ktor.io
Почему не в стандартной библиотеке?

Quantum Harmonizer
16.03.2018
09:16:35
Почему не в стандартной библиотеке?
потому что не всем они нужны

Kira
16.03.2018
09:20:36
потому что не всем они нужны
Зачем тянуть ктор в проект если нужны только сокеты?

Google
Roman
16.03.2018
09:26:50
В планах сделать отдельную от ktor.io библиотеку с блекджеком и асинхронными сокетами.

Руслан
16.03.2018
09:53:19
Это которая kotlin-io?

Roman
16.03.2018
09:56:03
kotlinx.io Туда постепенно переедут и асинхронные сокеты

Osip
16.03.2018
10:35:20
Наткнулся на такую забавную штуку.





Когда добавляю as WebDriver, то говорит, что это излишне, а когда убираю - не может сам его вывести.

Dmitry
16.03.2018
10:37:51
А как OperaDriver определен?

Gleb
16.03.2018
10:38:50
очевидно, что OperaDriver : WebDriver , ChromeDriver: WebDriver , иначе у человека бы и вопроса не было

Bogdan
16.03.2018
10:41:21
Наткнулся на такую забавную штуку.
а все елементы Type были спользованы ?

Osip
16.03.2018
10:42:08
Quantum Harmonizer
16.03.2018
10:42:42
мб взять sealed class?

Osip
16.03.2018
10:43:14
public class ChromeDriver extends RemoteWebDriver impllements ... public class OperaDriver extends RemoteWebDriver implements ...

мб взять sealed class?
Это Selenium. Я, конечно, могу запилить свою обёртку на эти классы, но это выглядит как баг

Gleb
16.03.2018
10:44:23
периодически натыкаюсь на такие баги, но с каждым обновлением их становится меньше

Dmitry
16.03.2018
10:44:33
Зафайлишь issue в YouTrack, пожалуйста?

Quantum Harmonizer
16.03.2018
10:44:53
они же перепилили type inference, в 1.3, как я понимаю, большая часть багов исчезнет

Gleb
16.03.2018
10:45:20
а когда намечен релиз 1.3, хотя бы ориентировочно?

Quantum Harmonizer
16.03.2018
10:45:50
а когда намечен релиз 1.3, хотя бы ориентировочно?
конец этого года или начало следующего :)

Google
Osip
16.03.2018
10:46:05
Кстати, могу протестить это с превью 1.3

Mikhail
16.03.2018
10:47:11
конец этого года или начало следующего :)
Долго еще инлайн классы ждать(

Vladimir
16.03.2018
10:48:36
Интересно, заиграет ли новыми красками термин type erasure после их релиза

Vladimir
16.03.2018
10:51:48
Почему должен?
Ну ведь inline классы фактически стираются во время компиляции. В рантайме их нет, и так же, как и с дженериками, проверок типа тоже.

Quantum Harmonizer
16.03.2018
10:53:21
Vladimir
16.03.2018
10:54:58
я бы вообще сказал, что это typealias, только с более строгим отношением языка к нему
С точки зрения языка это полноценный тип. typealias - это что-то вроде typedef в C.

Mikhail
16.03.2018
10:56:28
А как это все из джавы выглядит?

Anton
16.03.2018
10:58:05
никак

тайпалиасы всмысле

Quantum Harmonizer
16.03.2018
11:00:54
ну и инлайн классы никак)

Alexey
16.03.2018
11:02:48
тайпалиасы всмысле
Компилятор их подставляет

Alexey
16.03.2018
11:03:00
считай это дериктивой #define

Anton
16.03.2018
11:04:20
а есть где то чейнджлог 1.3 кроме той трансляции?

Victor
16.03.2018
12:05:00


Глеб
16.03.2018
12:06:50
Идея с египетскими иероглифами мне нравится больше



Жабра
16.03.2018
12:38:25
Kotlin JVM имеет какие-то личные плюхи для вызова C кода? Или только как на Джаве?

Alexey
16.03.2018
12:38:59
jvm жи един

Жабра
16.03.2018
12:39:28
Ну мб библиотека какая-нибудь, и ещё что. Всё что я находил - для Натива.

Google
Quantum Harmonizer
16.03.2018
12:40:20
Ну мб библиотека какая-нибудь, и ещё что. Всё что я находил - для Натива.
Для JVM нет никакой разницы, котлин делает нативные вызовы или Джава.

Жабра
16.03.2018
12:41:07
Понятно

Admin
ERROR: S client not available

Даниил
16.03.2018
12:44:57
Если это реально исключительный случай - то это другая история
исключения только в исключительных случаях и надо кидать

тут всё очень плохо

Gleb
16.03.2018
12:56:56
было бы очень круто иметь какой-нибудь интероп для Kotlin JVM и Kotlin Native

Руслан
16.03.2018
12:57:32
Рыженков писал что они думают об этом и будут делать

Sergey
16.03.2018
14:48:35
щас наверное все будет идти без jvm зависимостей, для мультиплатформенности

Kira
16.03.2018
14:50:33
Вот это и интересно, думаю про худые контейнеры на альпине

Sergey
16.03.2018
17:29:28
эх как же все печально с thread local

Alexey
16.03.2018
20:00:50
щас наверное все будет идти без jvm зависимостей, для мультиплатформенности
Мы напишем вам язык с максимально простым интеропом с джавой, чтобы у вас были библиотеки. А потом начнем писать платформо независимый код. Хитрая многоходовочка

Kirill
16.03.2018
20:08:20
а потом будем усложнять язык с каждым релизом, чтобы продавать больше IDE под каждую таргет платформу!

Andrew
16.03.2018
20:39:31
а потом будем усложнять язык с каждым релизом, чтобы продавать больше IDE под каждую таргет платформу!
Вы ж вроде одну и ту же IDE продаёте (почти) под все бекенды, не? Ну нэйтив пока не, но нэйтив же подтянется.

Kirill
16.03.2018
20:39:57
Ну нейтив, да AppCode CLion IDEA Ultimate (WebShtorm)

Bogdan
16.03.2018
20:40:24
да и сейчс на котлине без ИДЕ писать не камельфо

Andrew
16.03.2018
20:41:17
Мы напишем вам язык с максимально простым интеропом с джавой, чтобы у вас были библиотеки. А потом начнем писать платформо независимый код. Хитрая многоходовочка
Дык ну вот платформонезависимая stdlib, а дальше берите ведроед / спринг / фаундэйшн фреймворк и вяжитесь на платформу. Самое оно

Kirill
16.03.2018
20:41:49
первые 200 квикфиксов в сутки бесплатно, остальные по 1 центу за 10 штук, например )

oehdhs
16.03.2018
20:42:14
Вы с Microsoft путаете)

Andrew
16.03.2018
20:42:24
Ну нейтив, да AppCode CLion IDEA Ultimate (WebShtorm)
Ага, то есть нэйтив будет дружить с аппкодом ? (пока ж CLion + XCode, первый на идею обещали заменить, о втором ни слова)

Google
Andrew
16.03.2018
20:42:42
Вы с Microsoft путаете)
Он не путает, он инсайдом делится.

Кто-то там недавно чёт о нарушениях NDA говорил... ?

Kirill
16.03.2018
20:43:21
?

Alex
16.03.2018
20:46:37
скорее всего совсем тупой вопрос, но я не могу понять, что я делаю неправильно class Foo { inline fun <T: Foo, R: Foo.Bar> T.extention( block : Foo.Bar.() -> Unit) : T { block() // no value passed for parameter p1 return this } inner class Bar { fun doSomething() = "I did it" } } почему от меня требуется параметр в пустом блоке?

Andrew
16.03.2018
20:50:21
Дык не просто block(), а bar.block(). Он экстеншн-функция, ожидает ресивер.

Alex
16.03.2018
20:52:23
огромное спасибо

Andrew
16.03.2018
20:53:12
Не за что.

Alex
16.03.2018
20:57:42
дублирую ответ(вдруг кто-то так же не понимает), еще раз спасибо class Foo { inline fun <T: Foo, R: Foo.Bar> T.extention( block : Foo.Bar.() -> Unit) : T { Bar().block() return this } inner class Bar { fun doSomething() = "I did it" } }

Andrew
16.03.2018
21:03:35
Немного странно создавать объект, вызывать на нём блок и тут же о нём забывать, это точно то, чего вы добивались?

Alex
16.03.2018
21:06:36
скорее мне было дико интересно, что я делаю неправильно

Dmitry
16.03.2018
21:08:51
Ресивер лямбды, который бар, надо в нее как-то передать или создать. Это же обьект обычный, который в байткоде будет восприниматься как параметр функции. В правильном варианте вы просто создаете новый обьект, чтобы вызвать лямбду на нем. Это как минимум странно, а скорее всего бесполезно.

Если бар статический - делаем его обджектом и норм. А если инстанс - то его наверное тоже передавать туда как-то надо, иначе нет смысла инстансы создавать.

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