Size: a a a

Kotlin Community

2020 January 31

D

Denys in Kotlin Community
Юрий Макаров
ura@hp ~ $ java -version
java version "1.8.0_231"
Java(TM) SE Runtime Environment (build 8.0.6.0 - pxa6480sr6-20191107_01(SR6))
IBM J9 VM (build 2.9, JRE 1.8.0 Linux amd64-64-Bit Compressed References 20191106_432135 (JIT enabled, AOT enabled)
OpenJ9   - f0b6be7
OMR      - 18d8f94
IBM      - 233dfb5)
JCL - 20191016_01 based on Oracle jdk8u231-b10
источник

ЮМ

Юрий Макаров in Kotlin Community
СПасибо, чет торможу, пора в люлю.😌
источник

ЮМ

Юрий Макаров in Kotlin Community
По моему тут зарыто ¨ӧно¨: ura@hp ~ $ javac -version
javac 11.0.6
источник

AN

Alexander Nozik in Kotlin Community
Bogdan Panchenko
ну я может провтыкал)
Сейчас в JB команда по ДС появилась. На конфе плотненько обсудили. Планируем очень плотное сотрудничество и всячески общаемся. В слаке три канала.
источник

AN

Alexander Nozik in Kotlin Community
Запись вчерашнего митапа: https://youtu.be/h-J8UAaOrAE
источник

LS

Lev Shagalov in Kotlin Community
Можете еще раз для тупого напомнить...
log(smth) vs log { smth }
В чем преимущество второго варианта? Там ведь будет лишняя работа с вызовом. Я просто всегда пишу строго первый вариант.
источник

VP

Vladimir Petrakovich in Kotlin Community
Lev Shagalov
Можете еще раз для тупого напомнить...
log(smth) vs log { smth }
В чем преимущество второго варианта? Там ведь будет лишняя работа с вызовом. Я просто всегда пишу строго первый вариант.
Лишней работы не будет, если лямбда инлайн, а вот в первом варианте лишняя работа по сборке строки может быть
источник

SB

Sergey Barmin in Kotlin Community
Lev Shagalov
Можете еще раз для тупого напомнить...
log(smth) vs log { smth }
В чем преимущество второго варианта? Там ведь будет лишняя работа с вызовом. Я просто всегда пишу строго первый вариант.
в первом варианте строка создается в любом случае, во втором только при вызове
источник

AM

Andrew Mikhaylov in Kotlin Community
Lev Shagalov
Можете еще раз для тупого напомнить...
log(smth) vs log { smth }
В чем преимущество второго варианта? Там ведь будет лишняя работа с вызовом. Я просто всегда пишу строго первый вариант.
Если smth -- выражение, а второй вариант лога вызывает лямбду, только если логирование включено, то выражение не будет считаться, если не надо
источник

I

Ilmir in Kotlin Community
Lev Shagalov
Можете еще раз для тупого напомнить...
log(smth) vs log { smth }
В чем преимущество второго варианта? Там ведь будет лишняя работа с вызовом. Я просто всегда пишу строго первый вариант.
Ленивость. smth не вычислится, пока не понадобится. Если логинг отключен, то никакого оверхеда не будет.
источник

LS

Lev Shagalov in Kotlin Community
Если я не вызову log() то и считаться ничего не будет
источник

SB

Sergey Barmin in Kotlin Community
как по мне конечно на спичках экономия, но если прям  надо экономить - то это один из первых моментов)
источник

AN

Alexander Nozik in Kotlin Community
На всякий случай, там может быть не просто строка, а какое-то дорогое выражение
источник

VP

Vladimir Petrakovich in Kotlin Community
Lev Shagalov
Если я не вызову log() то и считаться ничего не будет
То есть руками заворачивать в if?
источник

AM

Andrew Mikhaylov in Kotlin Community
Lev Shagalov
Если я не вызову log() то и считаться ничего не будет
inline fun log(msg: () -> String) {
   if(logEnabled) println(msg())
}

ровно о том же, что и руками заворачивать, но короче.
источник

LS

Lev Shagalov in Kotlin Community
Я не понимаю... не вот смотрите, если выполнение не дошло до log {} - то выражение не выполняется. Это понятно.

Но ведь так же и для log(), разве нет?
источник

AM

Andrew Mikhaylov in Kotlin Community
В случае лога со строкой, а не с лямбдой, значение строки склеится, даже если логировать не надо.
источник

SB

Sergey Barmin in Kotlin Community
Lev Shagalov
Я не понимаю... не вот смотрите, если выполнение не дошло до log {} - то выражение не выполняется. Это понятно.

Но ведь так же и для log(), разве нет?
для log() у тебя уже определен и выделен объект который он будет выводить
источник

LS

Lev Shagalov in Kotlin Community
Andrew Mikhaylov
В случае лога со строкой, а не с лямбдой, значение строки склеится, даже если логировать не надо.
Что значит "логировать не надо"? Я понимаю это как "до log просто не доходит выполнение: типа if и все такое"
источник

VP

Vladimir Petrakovich in Kotlin Community
Lev Shagalov
Я не понимаю... не вот смотрите, если выполнение не дошло до log {} - то выражение не выполняется. Это понятно.

Но ведь так же и для log(), разве нет?
Обычно управление доходит до вызова логгера, но запись многих логов отключена
источник