
? animufag ?
26.04.2017
20:26:28
В Котлине чуть побольше.

Vitaliy
26.04.2017
20:26:48

? animufag ?
26.04.2017
20:26:52
то есть засовывание чего угодно в хип = проблема ЯП?

Dmitry
26.04.2017
20:27:00
К слову про нуллейбл примитив в доке сказано https://kotlinlang.org/docs/reference/basic-types.html#representation, так что тут все очень даже явно

Google

Quantum Harmonizer
26.04.2017
20:27:06

? animufag ?
26.04.2017
20:27:13
и за этим нужно знать что такое гц

Quantum Harmonizer
26.04.2017
20:27:25

Vitaliy
26.04.2017
20:27:28
Я написал кучу примеров, когда неявно объекты создаются.
Напишите forEarch {} в загруженном месте и будут вам проблемы с GC

? animufag ?
26.04.2017
20:28:02
3 кажется
я думал будут примеры где хитро захватывается скоп и потенциальная утечка

Dmitry
26.04.2017
20:28:40
Ну тут опять к слову в джаве for (Item item: items) тоже создаст итератор..

Vitaliy
26.04.2017
20:28:43
Утечек в Котлине нет
Это язык
Почему-то.

Quantum Harmonizer
26.04.2017
20:29:26

Google

Vitaliy
26.04.2017
20:29:27
Все думают на лямбду.
Они очень хорошо сделали анонимки, да.

Михаил
26.04.2017
20:30:48

Vitaliy
26.04.2017
20:31:02
Это правда.
Но по моей статистике на этот вопрос Котлинисты хуже джавистов отвечают.
На всякий случай ещё: больше строковых констант = больше GC root'ов

Dmitry
26.04.2017
20:31:55
На вопрос про неявное создание объектов?

Vitaliy
26.04.2017
20:31:58
И более загруженный хип

Dmitry
26.04.2017
20:32:20
Понял

Vitaliy
26.04.2017
20:32:34
Джависты тоже молодцы, пихают числа в мапу не думая

? animufag ?
26.04.2017
20:32:43
Утечек в Котлине нет
ну это же популярная штука, что если лямбда живёт дольше объекта в котором создалась то будут проблемы
и думал неявные места про которые ты говорил будут let run apply и что-нибудь такое
проперти мб

Vitaliy
26.04.2017
20:32:45
Но там чаще вспоминают про итератор

Pavel Shackih
26.04.2017
20:32:48
Автобоксинг в котлине не проблема. За счет инлайна в коллекциях его там вообще можно избежать, в остальном все как в джаве. Поэтому в целом даже лучше.

Quantum Harmonizer
26.04.2017
20:32:50

Vitaliy
26.04.2017
20:32:54
Ну это уже твой косяк, не языка

Quantum Harmonizer
26.04.2017
20:33:16

Vitaliy
26.04.2017
20:33:26
Он про простые лямбды
Которые не держатся рефами

Google

? animufag ?
26.04.2017
20:33:35

Vitaliy
26.04.2017
20:33:44
Начинает
В некоторых реализациях

Quantum Harmonizer
26.04.2017
20:34:28
Начинает
Где можно почитать о GC рутах? У меня слишком приблизительное представление об этом.

Vitaliy
26.04.2017
20:34:51
У нас ребята исследовали на разных машинах, исходники смотрели.
Так-то GC очень слабо анализу поддается.

? animufag ?
26.04.2017
20:35:13
чтобы начинать поиск нужно знать заранее что это ссылка

Vitaliy
26.04.2017
20:35:23
Строка не ссылка?

Pavel Shackih
26.04.2017
20:35:23

Vitaliy
26.04.2017
20:35:49
Ладно, ребята. Злые вы, критику вообще не умеете воспринимать, сразу троллите.
Как почти все котлинисты.

Quantum Harmonizer
26.04.2017
20:36:02

Vitaliy
26.04.2017
20:36:03
Разочаровали меня.

? animufag ?
26.04.2017
20:36:05
не надо так
ты писал
кококотлин
как ребёнок

Vitaliy
26.04.2017
20:36:34
У меня рука дрогнула в метро, в давке.

Google

? animufag ?
26.04.2017
20:36:35
здесь тебе нормально отвечали

Vitaliy
26.04.2017
20:36:45
Случайно вышло.

? animufag ?
26.04.2017
20:36:46
это глупо

Vitaliy
26.04.2017
20:36:48
Не нормально :(
Даже места с генерацией объектов вы как холивар восприняли :(

Pavel Shackih
26.04.2017
20:37:19

Vitaliy
26.04.2017
20:37:19
Хотя мы просто обсуждали с вами внутренности языка.
Какое неуютное у вас коммьюнити.

? animufag ?
26.04.2017
20:37:41
оох

Admin
ERROR: S client not available

Vitaliy
26.04.2017
20:37:48
Пойду погрущу.

? animufag ?
26.04.2017
20:37:50
короче

I
26.04.2017
20:37:51
welcome to python flood community! Мы говорим обо всем, кроме питона! За котлин позатирать можно =)

Quantum Harmonizer
26.04.2017
20:37:56

? animufag ?
26.04.2017
20:38:09
я бы поиследовал искодники гц
но нужно делать ставки

Dmitry
26.04.2017
20:38:33

? animufag ?
26.04.2017
20:38:34
чтобы был интерес

Pavel Shackih
26.04.2017
20:38:42

Vitaliy
26.04.2017
20:38:50

Google

Vitaliy
26.04.2017
20:39:00
В Лондоне постоянно такое

? animufag ?
26.04.2017
20:39:50

Dmitry
26.04.2017
20:57:40
но жаль для этого алоцировать объект каждый раз
Кстати, а зачем там объект вообще?
т.е. если так хочется использовать функцию, то чем не подходит такой вариант?
inline fun <T1, T2, R> unwrap(t1: T1?, t2: T2?, action: (T1, T2) -> R): R? {
if (t1 != null && t2 != null) {
return action(t1, t2)
}
return null
}
inline infix fun Any?.otherwise(crossinline action: () -> Unit) {
if (this == null) action()
}

Quantum Harmonizer
26.04.2017
20:59:50
crossinline здесь не нужен

Dmitry
26.04.2017
21:00:37
эт да, лишнее


Roman
26.04.2017
21:38:04
Кстати, а зачем там объект вообще?
т.е. если так хочется использовать функцию, то чем не подходит такой вариант?
inline fun <T1, T2, R> unwrap(t1: T1?, t2: T2?, action: (T1, T2) -> R): R? {
if (t1 != null && t2 != null) {
return action(t1, t2)
}
return null
}
inline infix fun Any?.otherwise(crossinline action: () -> Unit) {
if (this == null) action()
}
я могу только догадываться зачем. предполагаю, что для того, чтобы не создавать лишний апи для всех типов. т.е. сделать это "ключевое слово"/метод применимым только в нужном контексте аля else
но предложенный тобой вариант тоже хорош
а нельзя сделать экстеншн функцию только для null? тогда otherwize по сути заменит элвис оператор
=)
для кейзов с проверками, о которых была речь будет в самый раз для улучшения читабельности
а вообще, почитал тред на kotlin discuss который выше кидали и не понял, почему никто не предлагает вариант как в Swift
if (let localA = a, let localB = b) { } else {}
ну или что-то такое
по моему очень простое, удобное и неломающее ничего решение
внутри блока становятся доступны немутабельные ненулевые значения, при этом сохраняется доступ к исходным свойствам
красота


kirbulich
27.04.2017
01:42:03
Кто libgdx использует с kotlin
Опишите ваши ощущения

Andrew
27.04.2017
01:45:58
@angmarr

Konstantin
27.04.2017
04:24:56
Я использовал как-то. Вроде ок, но на пару неочевидных вещей я натыкался, что они мне пару часов отнимали.