Size: a a a

Kotlin Community

2020 October 30

OY

Oleg Yukhnevich in Kotlin Community
Vladimir Petrakovich
Мне кажется, намного лучше. Чем быстрее упадёт код, который делает не то, что задумано, тем лучше.
А иначе это какой-то protobuf style.
спасибо за фидбэк
всем спасибо
источник

OY

Oleg Yukhnevich in Kotlin Community
Andrew Mikhaylov
Жаль, что в дслке нет возможности зафорсить наличие вызова конкретного метода, как обязательного data у вас, но в остальном это вполне логичное решение. В джаве, я думаю, я б такую задачу билдером и решал, аналогия вполне прямая в котлин получается.
я кстати вспомнил, что видел что-то на счёт этого толи в котлин репозитории, толи что в контрактах
то есть там можно было объявить контракт на то, что данная ф-ия будет вызвана в данном контексте например AT_LEAST_ONCE или типа того
так что может в какой-то версии котлина мы дождёмся такого :)
источник

AM

Andrew Mikhaylov in Kotlin Community
Oleg Yukhnevich
я кстати вспомнил, что видел что-то на счёт этого толи в котлин репозитории, толи что в контрактах
то есть там можно было объявить контракт на то, что данная ф-ия будет вызвана в данном контексте например AT_LEAST_ONCE или типа того
так что может в какой-то версии котлина мы дождёмся такого :)
В контрактах такое есть, но это скорее для ситуаций вроде
val v: Int
run {
   v = 42
}

Но да, кто знает, может, докрутят :)
источник

OY

Oleg Yukhnevich in Kotlin Community
Andrew Mikhaylov
В контрактах такое есть, но это скорее для ситуаций вроде
val v: Int
run {
   v = 42
}

Но да, кто знает, может, докрутят :)
я видел это где-то в ветке котлина, либо в репозитории каком-то от JB
то есть типа research :)
источник

AM

Andrew Mikhaylov in Kotlin Community
Oleg Yukhnevich
я видел это где-то в ветке котлина, либо в репозитории каком-то от JB
то есть типа research :)
А, значит чёт другое)
источник

OY

Oleg Yukhnevich in Kotlin Community
Andrew Mikhaylov
А, значит чёт другое)
источник

AM

Andrew Mikhaylov in Kotlin Community
Симпатишно :) Там, похоже, ещё и механизм пропагации контрактов изнутри наружу прототипировался)
источник

VP

Vladimir Petrakovich in Kotlin Community
Ух, огнище, вот бы сделали такое
источник

OY

Oleg Yukhnevich in Kotlin Community
Andrew Mikhaylov
Симпатишно :) Там, похоже, ещё и механизм пропагации контрактов изнутри наружу прототипировался)
да там вообще много всего я так понимаю хотели на контрактах сделать

А потом появились 3 компилятора, которые надо в один* объединить
и походу весь ресёрч остановился
надеюсь когда будет stable IR то начнётся жара
источник

AM

Andrew Mikhaylov in Kotlin Community
Oleg Yukhnevich
да там вообще много всего я так понимаю хотели на контрактах сделать

А потом появились 3 компилятора, которые надо в один* объединить
и походу весь ресёрч остановился
надеюсь когда будет stable IR то начнётся жара
Все надеятся) Ладно, не все, но многие
источник

I

Ilmir in Kotlin Community
Andrew Mikhaylov
Почти как перл раку, только не такой выразительный. Да, @ilmirus?
Да, Раку пока повыразительнее будет. Одни грамматики чего стоят. Ну и куча встроенных операторов и функций, вроде декартового произведения упрощают написание одноразового кода.
источник

AA

Albert Abdullin in Kotlin Community
Ребята. Я доку по Котлин читаю. С английского не всегда до полного понимания могу первести. Почему в следующем примере так?
val a: Int = 100
val boxedA: Int? = a
val anotherBoxedA: Int? = a

val b: Int = 10000
val boxedB: Int? = b
val anotherBoxedB: Int? = b

println(boxedA === anotherBoxedA) // true
println(boxedB === anotherBoxedB) // false
источник

AA

Albert Abdullin in Kotlin Community
Note that boxing of numbers does not necessarily preserve identity:
источник

VP

Vladimir Petrakovich in Kotlin Community
Albert Abdullin
Ребята. Я доку по Котлин читаю. С английского не всегда до полного понимания могу первести. Почему в следующем примере так?
val a: Int = 100
val boxedA: Int? = a
val anotherBoxedA: Int? = a

val b: Int = 10000
val boxedB: Int? = b
val anotherBoxedB: Int? = b

println(boxedA === anotherBoxedA) // true
println(boxedB === anotherBoxedB) // false
Тонкости работы java.lang.Integer.valueOf()
источник

AA

Albert Abdullin in Kotlin Community
Типа компилятор если хочет, может объекты ссылать на один адрес, а может и не захочет, так что ли?
источник

KZ

Konstantin Zolotov in Kotlin Community
Albert Abdullin
Note that boxing of numbers does not necessarily preserve identity:
=== сравнение по ссылке, а Integer может иметь кэш, когда а некотором диапазоне он будет возвращать ссылки на уже имеющиеся объекты
источник

SB

Sergey Barmin in Kotlin Community
Konstantin Zolotov
=== сравнение по ссылке, а Integer может иметь кэш, когда а некотором диапазоне он будет возвращать ссылки на уже имеющиеся объекты
там вроде что-то типа хардкода до какого-то числа
источник

AA

Albert Abdullin in Kotlin Community
спасибо
источник

PE

Pavel Erokhin in Kotlin Community
Sergey Barmin
там вроде что-то типа хардкода до какого-то числа
До 127 вродь
источник

с#

саша сок #KotlinGang... in Kotlin Community
Albert Abdullin
Ребята. Я доку по Котлин читаю. С английского не всегда до полного понимания могу первести. Почему в следующем примере так?
val a: Int = 100
val boxedA: Int? = a
val anotherBoxedA: Int? = a

val b: Int = 10000
val boxedB: Int? = b
val anotherBoxedB: Int? = b

println(boxedA === anotherBoxedA) // true
println(boxedB === anotherBoxedB) // false
потому что есть пул интов, которые переиспользуются и у них одинаковые ссылки. также как и со строками.
источник