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

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

Лёша
29.11.2017
12:35:15

Руслан
29.11.2017
12:36:17

Google

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

Dibro
29.11.2017
12:37:18

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

Dibro
29.11.2017
12:40:56

Gregory
29.11.2017
12:41:18
Нашел вдидео про лямбды для совсем-совсем новичков. Суть во второй половине начинается. Первая половина объяснение на рисунках https://youtu.be/QyDYbFkHJmY
Если кому-то это интересно
Человек создает свой интерфейс на примере которого и показывает принцип лямбд. То что и надо для новичков. не готовые интерфейсы, а все написаное в ручную

Лёша
29.11.2017
12:42:38

Google

Саша
29.11.2017
12:43:54

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

Руслан
29.11.2017
12:55:11

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

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

Sergey
29.11.2017
15:37:25
ну они вроде все в russian есть
не уверен что смогу красиво этот вопрос перевсти на английский

Igor
29.11.2017
15:39:49

Kirill
29.11.2017
15:44:38

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

Sergey
29.11.2017
16:02:39


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

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

Dibro
29.11.2017
22:49:55
почему 7 во втором случае?

Sergey
29.11.2017
22:50:49

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