@kotlin_lang

Страница 435 из 982
Artem
29.11.2017
12:30:39
Ознакомиться с принципами nullability в котлине

DarkMentat
29.11.2017
12:33:20
в общем странно, должно было быть норм вроде, давай больше контекста

Лёша
29.11.2017
12:35:15
а вообще - .map { it!! }.toTypedArray()
тогда уже лучше хотябы .mapNotNull{ it }.toTypedArray() как-то меньше вероятности словить NPE

Google
Лёша
29.11.2017
12:36:34
ещё лучше

Dibro
29.11.2017
12:37:18
тогда уже лучше хотябы .mapNotNull{ it }.toTypedArray() как-то меньше вероятности словить NPE
ну я так понял там определённо не должно быть нулов, так что если они там есть - это как раз ошибка и нпе будет кстати

Alexey
29.11.2017
12:38:03
Класс требует array nullable - я передаю array non-null - компилятор ругается

Руслан
29.11.2017
12:38:40
покажи сигнатуру метода

Dibro
29.11.2017
12:38:55
прошу прощения

Лёша
29.11.2017
12:39:56
щет, тогда .map{ it as Int? }.toTypedArray() вроде поможет но не факт

Dmitry
29.11.2017
12:40:51
щет, тогда .map{ it as Int? }.toTypedArray() вроде поможет но не факт
чому уж сразу не скастить тогда arr as Array<Int?>

Dibro
29.11.2017
12:40:56
Gregory
29.11.2017
12:41:18
Нашел вдидео про лямбды для совсем-совсем новичков. Суть во второй половине начинается. Первая половина объяснение на рисунках https://youtu.be/QyDYbFkHJmY

Если кому-то это интересно

Человек создает свой интерфейс на примере которого и показывает принцип лямбд. То что и надо для новичков. не готовые интерфейсы, а все написаное в ручную

Лёша
29.11.2017
12:42:38
в таком случае достаточно as Array<Int?>
хм, не подумал о таком варианте

Google
Dibro
29.11.2017
12:51:00
зачем вообще использовать Array<Int(?)>, если есть IntArray? там и нулов не бывает

Руслан
29.11.2017
12:53:09
Array<Int (object, nullable)> IntArray - only Int(primitive, nonnull)

Dibro
29.11.2017
12:54:41
Array<Int (object, nullable)> IntArray - only Int(primitive, nonnull)
в джаве вы часто видите Integer[]?

Руслан
29.11.2017
12:55:11
в джаве вы часто видите Integer[]?
я и джаву то не часто вижу)

Gregory
29.11.2017
12:56:43
?

Руслан
29.11.2017
12:56:44
Ну вот ищу по проекту: в xnio есть такое, byte-buddy, mockito

39 использований нашло

guice, maridb connector

Igor
29.11.2017
15:12:44
Смотрю в 1.2 внутри методов let и тд появились какие-то contract { }. Кто-нибудь интересовался что-то и зачем? Хотя оно inner и вроде все равно юзать не получится.

Kirill
29.11.2017
15:13:07
могу попробовать найти слайды, в которых рассказано про это. если мне разрешат их наружу показать

Igor
29.11.2017
15:15:06
Ну можно своим слова рассказать, а что не так со смарткастами?

Kirill
29.11.2017
15:22:22
fun foo(x: Any) { if (x is String) { x.length //OK } }

fun isString(x: Any): Boolean { return x is String } fun foo(x: Any) { if (isString(x)) { x.length //not OK } }

контракты позволят сказать компилятору "если isString вернул true, значит x — строка"

то есть, будет больше мест где будут срабатывать смарткасты. один из ярких примеров requireNotNull

Жабра
29.11.2017
15:27:59
Топ. :)

Sergey
29.11.2017
15:28:22
годно

Igor
29.11.2017
15:30:02
то есть, будет больше мест где будут срабатывать смарткасты. один из ярких примеров requireNotNull
А у меня что-то не работает fun test(x: String?) { requireNotNull(x) println(x.length) // не компилирует в 1.2 }

Google
Kirill
29.11.2017
15:30:22
это, возможно, будет потом

пока ещё нет

Igor
29.11.2017
15:31:41
ОК, а вы это потом сделает public или это всегда будет internal?

Sergey
29.11.2017
15:33:21
могу попробовать найти слайды, в которых рассказано про это. если мне разрешат их наружу показать
вот кстате есть вопрос немного связанный с этим, но врядли ответят ) в kotlin/native есть мощный механизм который анализирует время жизни объектов, он используется для gc как я понимаю. но он ведь удобен и для всяких Disposable. Не планируется ли использовать этот механизм и вне kotlin/native? и второй вопрос: в kotlin/native компилятор выглядит гораздо мощнее чем в других бэкендах, в котором есть esacepAnalyzis и вот еще DFG анализ пилят, который кроме применения в native (сейчас насколько я понимаю используется исключительно для управления памятью) можно было бы использовать для мощных оптимизаций: например для loop fusion и мощного инлайна. не планируется ли эти возможности компилятора native использовать во всех других бэкендах?

Kirill
29.11.2017
15:33:24
возможно будет автоматический вывод этих контрактов. но это очень не скоро и очень не точно

Sergey
29.11.2017
15:35:08
ну ок, попробую в #russian продублировать

Igor
29.11.2017
15:35:45
ну ок, попробую в #russian продублировать
(спойлер: тебя сразу в #native пошлют)

Sergey
29.11.2017
15:37:25
ну они вроде все в russian есть

не уверен что смогу красиво этот вопрос перевсти на английский

Igor
29.11.2017
15:39:49
возможно будет автоматический вывод этих контрактов. но это очень не скоро и очень не точно
А раз ты в курсе про кухню Kotlin ? Что там с пропозалом на тайп классы? Кто-то его реально рассматривает? Будет хоть в когда-нибудь? А то чуваки из kategory уже рассказывают про альтернативы, если его не примут.

Kirill
29.11.2017
15:44:38
А раз ты в курсе про кухню Kotlin ? Что там с пропозалом на тайп классы? Кто-то его реально рассматривает? Будет хоть в когда-нибудь? А то чуваки из kategory уже рассказывают про альтернативы, если его не примут.
Я слышал, что kategory форкнули компилятор чтобы запилить прототип тайпклассов. Но коммитов я в форке не видел. Про поддержку в языке -- да хочется. Но не понятно как реализовывать. Запилить фичу в язык -- это дико долго и сложно.

Kirill
29.11.2017
15:46:04
Факт в том, что про него думают.

Sergey
29.11.2017
16:02:39
вот кстате есть вопрос немного связанный с этим, но врядли ответят ) в kotlin/native есть мощный механизм который анализирует время жизни объектов, он используется для gc как я понимаю. но он ведь удобен и для всяких Disposable. Не планируется ли использовать этот механизм и вне kotlin/native? и второй вопрос: в kotlin/native компилятор выглядит гораздо мощнее чем в других бэкендах, в котором есть esacepAnalyzis и вот еще DFG анализ пилят, который кроме применения в native (сейчас насколько я понимаю используется исключительно для управления памятью) можно было бы использовать для мощных оптимизаций: например для loop fusion и мощного инлайна. не планируется ли эти возможности компилятора native использовать во всех других бэкендах?
Алексей Андреев ответил: Насколько я знаю, планируется. Просто это подразумевает рефакторинг большого количества существующего кода, уже работающего в продакшене, поэтому всё движется гораздо медленнее.

Osip
29.11.2017
16:51:32
Правильно я понимаю, что фича с expected and actual declarations поможет так же запросто сделать реализацию одного и того же API не только под JVM/JS, но и, например, сделать common-часть для плагина для разных серверных платформ и при этом без архитектурных заморочек, а прямо на уровне языка?

Как-то криво выразился, но лучше не смогу.

Или смогу. Другими словами, ничего не мешает сделать насколько независимых модулей под одну платформу (JVM/JS)? Вроде как в документации, не говорится, что так нельзя, но хочется быть уверенным ибо явно это не прописано

Всё. Вопрос снят. То что мне нужно называется "regular module"

Anton
29.11.2017
17:23:50
нормально ты сам с собой обсудил))

Osip
29.11.2017
17:31:59
:D

Google
Admin
ERROR: S client not available

Alexandr
29.11.2017
19:52:21
Привет. Подскажите плиз, есть JsonArray полученный из sql запроса, необходимо отобразить его в виде таблички на Activity но чтобы я мог выбирать строки и получить инфу с выбранной строки... С помощью чего лучше реализовать данную штуку? На текущий момент сделал через GridView но не смог сделать нормальной видимости границ строк и столбцов

Siarhei
29.11.2017
19:59:10
тебе в Kotlin Android

Anton
29.11.2017
19:59:29
или вообще в андроид ру. а так ресайклер с гридлейаутменеджером)

Igor
29.11.2017
20:05:31
Что бы не искать - @android_ru @kotlin_mobile

Alex
29.11.2017
22:21:25
подскажите плз, хочу скопировать переменную int, а метода copy() у него нет. Как мне скопировать переменную int в другую переменную ?

Denys
29.11.2017
22:23:12
через =?

Dmitry
29.11.2017
22:24:46
Int по сути упаковывается в примитив, так что обращение по ссылке не работает и копирует по умолчанию. Поэтому просто присваиванием

Alex
29.11.2017
22:25:58
= это как я понял передача ссылки а не значения переменной

Quarx2k ?
29.11.2017
22:26:32
= это как я понял передача ссылки а не значения переменной
int это примитив. Примитивы не имеют ссылок

Alex
29.11.2017
22:26:34
мне же надо в новую переменную скопировать значение из текущей переменной, в джава это метод copy()

хмм

Quarx2k ?
29.11.2017
22:26:43
Integer это ссылка

int нет

Как и long char double float byte итд

Alex
29.11.2017
22:27:32
очень странно, сейчас скину пример

Quarx2k ?
29.11.2017
22:28:39
Допустим int a = 12; int b = a; a = 7; print (b) будет 12 Integer a = 12; Integer b = a; a = 7; print (b) будет 7; Integer a = 12; Integer b = a.intValue(); a = 7; print (b) будет 12

Maxim
29.11.2017
22:36:37
Это же Java! Фу фу фу

Жабра
29.11.2017
22:37:01
Поддерживаю. :)

Quarx2k ?
29.11.2017
22:43:40
Я с котлином дружу один день всего)))

Google
Alex
29.11.2017
22:48:51
Sergey
29.11.2017
22:50:49
почему 7 во втором случае?
потому-что автобоксинг

Dibro
29.11.2017
22:51:05
Интеджеры иммутабельны

Sergey
29.11.2017
22:51:47
Integer boxed type

Artem
30.11.2017
06:34:40
потому-что автобоксинг
Там ошибочка в втором примере)) там авто бокс унбокс поэтому мы присваиваем значение а не ссылку. Вот если бы было Intrger a = new Integer(7)...и ТД, тогда при а=b мы бы присвоили ссылку

Izy Yank
30.11.2017
07:24:40
в андроид проекте создал main.kt внутри папки java/mypackage запускаю fun main(args: Array<String>) выдает ошибку java.lang.ClassNotFoundException

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