@kotlin_lang

Страница 852 из 982
Руслан
06.09.2018
09:55:41
Т.е. ++ и -- на любом объекте должен так работать

Mi
06.09.2018
09:56:37
ну да, разве что по такому признаку

хотя я бы его счёл всё же косвенным

по факту все operator fun должны быть immutable, а в Int нет других, кроме явных кастов

Google
Руслан
06.09.2018
09:58:05
по факту все operator fun должны быть immutable, а в Int нет других, кроме явных кастов
binary plus может быть и мутабльным и иммутабельным например

ну типо x + y

Mi
06.09.2018
09:59:16
binary plus может быть и мутабльным и иммутабельным например
ну мне кажется это тоже не совсем корректно тк всё-таки эти операторы производят новое значение из двух других

Andrey
06.09.2018
09:59:44
я просто к тому, что это ожидаемое поведение, когда ты знаешь о системе типов джавы
Ну я вижу documentation gap. По крайней мере в kotlin doc к Primitives.kt . Не указано про иммутабельность примитивов. В String.kt тоже не сказано, что они иммутабельны. С другой стороны, в Kotlin есть конвенция, вроде как, что всё иммутабельно, если не сказано обратного.

Руслан
06.09.2018
09:59:46
ну в случае muttableX(list, set, ...) это удобно

mutableListOf(1, 2, 3) + 4

Mi
06.09.2018
10:00:24
нужен какой-нибудь MutableInt ?

Andrey
06.09.2018
10:00:42
Boris
06.09.2018
10:00:56
Mi
06.09.2018
10:01:24
Зачем?
ну он нужен по факту для одного специфического кейса, Flyweight pattern, в бигдате используется

чтобы не аллоцировать много памяти, когда очень много операций с числами

но в hadoop фреймворке уже есть всякие IntWritable

это уже лирика

Google
Alexey
06.09.2018
10:34:53
Ну как я понимаю чтобы не аллоцировать новый int можно только изменить ячейку памяти через unsafe

Других вариантов в приделах jvm - нема

Artem
06.09.2018
12:03:33
Привет всем. А разве корутины не идут в стандартной библиотеке уже?

Quantum Harmonizer
06.09.2018
12:04:22
корутины — это фича языка ;)

Artem
06.09.2018
12:04:26
или это я себе приснил??

Quantum Harmonizer
06.09.2018
12:04:41
в стдлибе есть несколько базовых функций

Artem
06.09.2018
12:05:00
async {} ?

Di7aK
06.09.2018
12:06:14
как лучше из имени файла выдрать расширение и оставить строку без него

старыми добрыми индексОфами?

Di7aK
06.09.2018
12:07:29
ага нашел уже

Artem
06.09.2018
12:09:17
Quantum Harmonizer
06.09.2018
12:10:00
Konstantine
06.09.2018
12:13:08
Почему нельзя сделать так: produce { object: SomeInterface { fun a() { this@produce.send(1) } } }

Ругается, что send можно вызывать только из корутины, но так оно внутри, нет?

Igor
06.09.2018
12:13:50
Ругается, что send можно вызывать только из корутины, но так оно внутри, нет?
так оно в функции; то, что вы объект в коpутине создали не значит, что функции будут вызываться в коpутине

Konstantine
06.09.2018
12:14:07
Так, как тогда это обойти можно?

Igor
06.09.2018
12:14:27
Так, как тогда это обойти можно?
Как вы вообще пpедполагаете, что это будет pаботать?) Может быть, что-то такое: produce { registerObserver(object: SomeObserver { override fun onEvent(e: Event) { this@produce.send(1) } }) }

Konstantine
06.09.2018
12:15:16
Как вы вообще пpедполагаете, что это будет pаботать?) Может быть, что-то такое: produce { registerObserver(object: SomeObserver { override fun onEvent(e: Event) { this@produce.send(1) } }) }
Хотел накидать канал, который будет эммитить значения при изменении в TextView. Т.е. повесить TextWatcher и вызывать send в textChanges.

Google
Quantum Harmonizer
06.09.2018
12:16:34
запихнуть куда-нибудь канал и совать в него значения из функции (если так можно :)

Igor
06.09.2018
12:17:57
запихнуть куда-нибудь канал и совать в него значения из функции (если так можно :)
Так логичнее, но ИМХО, гpязнее. Сейчас песочницу с коpутинами создам - поэкспеpиментиpую немного, и вкину какое-нибудь адекватное pешение.

Konstantine
06.09.2018
12:18:43
По идее должно заpаботать, если сделаете suspend. Нет?
На какую функцию? Базовую самую? Но так снова объект будет внутри.

Igor
06.09.2018
12:29:55
https://gist.github.com/komigor/bd409a07288f55d9211c64df72026e5a @Vorkytaka, по идее что-то такое должно pаботать так, как вам нужно. Нет?

Enterpise
06.09.2018
13:22:03
Gradle Effective Implementations Guide ?

Andrey
06.09.2018
14:36:34
всем привет, нужно создать инстанс класса с UserLikesHandler::class.java и передать в конструктор аргументы увидел newInstance только там нету возможности передать аргументы подскажите правильный путь

Quantum Harmonizer
06.09.2018
14:39:44
ИмяКласса(аргументы через запятую)

Andrey
06.09.2018
14:42:08
ИмяКласса(аргументы через запятую)
если бы так изначально есть вот такая конструкция альяса typealias RouteHandler = Class<out MessageHandler> UserLikesHandler имплементит MessageHandler так что у меня вместо имени класса есть RouteHandler и тут у меня есть только newInstance

Quantum Harmonizer
06.09.2018
14:42:54
напоминает что-то про удаление гландов или троллейбус из буханки

Andrey
06.09.2018
14:43:32
я ожидал такой комментарий, если можно то направьте правильно

Andrew
06.09.2018
14:45:31
Если есть KClass, то конструктор можно найти в kClass.constructors (https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-class/constructors.html) или взять kClass.primaryConstructor (https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect.full/primary-constructor.html).

Ну и не забыть подключить reflection-full, конечно.

(если есть Class, но есть уверенность, что это котлин-класс и нужен праймэри конструктор, то можно сделать clazz.kotlin.primaryConstructor. Как это поведёт себя для Java-класса — не знаю, не проверял)

Izy Yank
06.09.2018
16:48:43
Всем привет

А возможно собрать и запустить Котлин проект на линуксе или Винде если нет jdk ?

Как GO проект собирают для винды или линукса

Leonid
06.09.2018
16:50:49
Ну го проект без го не соберешь :) Kotlin компилятор работает на JVM, потому джава тебе в любом случае понадобится

Google
Izy Yank
06.09.2018
16:51:25
Для сборки ладно, а для запуска?

Admin
ERROR: S client not available

Bogdan
06.09.2018
16:51:42
А возможно собрать и запустить Котлин проект на линуксе или Винде если нет jdk ?
для запуска нужно только jre, и есть проекты которые делают бинарь под конкретную систему

Никита?❄️
06.09.2018
16:52:54
Для сборки ладно, а для запуска?
kotlin/js или native - да, jvm - нет

Izy Yank
06.09.2018
16:54:16
Есть такие хостинги которые не хотят устанавливать жаву, но надо там запустить Котлин проект, jre тоже не хотят ставить

Bogdan
06.09.2018
16:54:21
@IHayriev а чем тебя jre неустраивает &

Никита?❄️
06.09.2018
16:54:42
pom.xml, папка с сорцами и поехал

Izy Yank
06.09.2018
16:55:39
Ок, спасибо

Alexander
06.09.2018
16:56:09
Можно эмбеддить JRE или его подмножество в бинарник

Izy Yank
06.09.2018
16:57:09
Жава или Котлин?

Просто ради интереса)

Alexander
06.09.2018
16:57:20
В смысле?

Никита?❄️
06.09.2018
16:57:23
Жава или Котлин?
ты в чатике котлина

тут все скажут котлин топ

Izy Yank
06.09.2018
16:57:36
В смысле?
На чем писать)

тут все скажут котлин топ
Ну чисто объективно

Alexander
06.09.2018
16:58:15
Если с нуля и нет завязки на кровавый интерпрайз, то котлин

Google
Bogdan
06.09.2018
16:58:33
На чем писать)
зависит от вкуса, это чисто субективное мнение, увы, объективности не существует

Alexander
06.09.2018
16:58:37
У меня сейчас смесь.

Никита?❄️
06.09.2018
16:58:51
Ну чисто объективно
котлин по моему субъективному мнению гораздо лаконичней

Alexander
06.09.2018
17:00:18
Все новое на котлине, старое тоже туда постепенно переползает, но котлина не всегда на 100% совместима с джавой, так что если писать библиотеку на котлине и потом использовать ее на джаве, можно нарваться

Никита?❄️
06.09.2018
17:01:02
а он на год ?
я уже 3 года юзаю, и плачу по нулям

Bogdan
06.09.2018
17:01:31
я уже 3 года юзаю, и плачу по нулям
похоже там лимит на нагрузки, спасибо

Никита?❄️
06.09.2018
17:02:00
похоже там лимит на нагрузки, спасибо
2000 часов работы инстанса в месяц (спокойно 2 сервера 24*7)

каждый инстанс это 512 мб оперативки, 1 ядро слабенькое

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