@kotlin_lang

Страница 160 из 982
Sergey
29.05.2017
07:37:10
Не самый вкусный, да

?FLERRY?
29.05.2017
07:37:37
Не, весьма ничего, если уметь заваривать. Правда, древний, поэтому иногда бывает горьковат

Sergey
29.05.2017
07:38:07
На вкус и цвет все фломастеры разные. К тому же ява это мотоцикл

Google
Quantum Harmonizer
29.05.2017
07:44:07
Доброе утро. Никто не подскажет книг по котлину и его отличия от явы? (не троллинг)
Книг не подскажу, т. к. по Котлину их всего штуки две. На оф. сайте чуть ли не в каждом разделе есть сравнения с Java.

Sergey
29.05.2017
07:44:40
Да, я уже читаю. Что-то я не догадался зайти на оф. сайт... )))

Umren
29.05.2017
07:51:37
Ява это еще сигареты

по котлину крутые курсы от хайди на орелли есть

так сказать из первых рук

Sergey
29.05.2017
07:52:14
м?

А можно ссылочку?

Umren
29.05.2017
07:52:36
http://shop.oreilly.com/product/0636920052982.do

http://shop.oreilly.com/product/0636920052999.do

Sergey
29.05.2017
07:53:03
Спасибо.

Umren
29.05.2017
07:53:32
вот оба пройди и ты готов

Sergey
29.05.2017
07:56:36
К чему, сенсей?

Umren
29.05.2017
07:56:55
к чему хочешь

Google
Глеб
29.05.2017
08:11:24
Привет! Мне для того, чтобы вызывать функции kotlin из java с необязательным параметром комфортно, приходится дописывать вот такую бодягу: fun f1(a: String, b: String? = null) {} fun f1(p:String) = f1(p) Теперь из Java мне можно не дописывать параметр null в конце: MyKt.f1(“hello”); //было MyKt.f1(“hello”, null); Как можно сделать это лучше?

Глеб
29.05.2017
08:13:05
крутяк, спасибо

Gregory
29.05.2017
08:14:54
крутяк, спасибо
Для интеропа с Java рекомендую и другие аннотации @Jvm* посмотреть.

Вот ссылка на документацию: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.jvm/

Глеб
29.05.2017
08:16:20
@K_Gregory ? посмотрю

уже нагуглил)

Sasha
29.05.2017
08:58:30
Хорошая статейка про как надо и как не надо https://blog.philipphauer.de/idiomatic-kotlin-best-practices/

? animufag ?
29.05.2017
09:23:06
//Do val city = order?.customer?.address?.city ?: throw IllegalArgumentException("Invalid Order") всё ещё кажется чем-то противоестественным

Quantum Harmonizer
29.05.2017
09:30:01
Такой объект просто не должен быть создан. Констрейнты СУБД не должны позволить создавать такую какашку.

? animufag ?
29.05.2017
09:34:54
тут же вроде не было субд в разговоре?

Quantum Harmonizer
29.05.2017
09:35:25
тут же вроде не было субд в разговоре?
Это пример. Если такое приходит с бэкэнда, exception должен вываливаться на этапе парсинга.

Dmitriy
29.05.2017
10:36:02
Здравствуйте. решил создать в проекте extension для view. не могу найти, как это сделать: fun View.visibility(visibile: Boolean) { if (visibile) { visibility = View.VISIBLE } else { visibility = View.INVISIBLE } } после этого я могу вызывать view.visibility(true) . а как сделать, чтобы можно было вызывать view.visibility = true ? и чтоб if (view.visibility == true)

Михаил
29.05.2017
10:38:14
проблема в том что метод setVisibility перекрывает твой эксеншн

есть несколько решений, но лучше просто иначе назови экстешн

isVisible например)

Dmitriy
29.05.2017
10:40:23
^^ это extension function, а нужен extension property.
как реализоватть extensions property? )

Quantum Harmonizer
29.05.2017
10:41:27
https://kotlinlang.org/docs/reference/extensions.html#extension-properties

Google
Quantum Harmonizer
29.05.2017
10:41:36
Я обычно называю softVisibility (VISIBLE/INVISIBLE) и hardVisibility (VISIBLE/GONE).

Dmitriy
29.05.2017
10:46:51
var View.visible: Boolean get() = View.VISIBLE == visibility set(value) { visibility = if (value) View.VISIBLE else View.INVISIBLE }

спасибо )

Dmitriy
29.05.2017
10:48:38
не понял

Quantum Harmonizer
29.05.2017
10:48:48
Dmitriy
29.05.2017
10:49:08
ой, вот это, если не сложно, поясните, какой буст дает?

Quantum Harmonizer
29.05.2017
10:49:10
не понял
http://2.bp.blogspot.com/-M61Y-VuCCSM/TtIQMTYPNrI/AAAAAAAAAGM/YtTOGRknF1s/s1600/yoda-conditions.jpg

Dmitriy
29.05.2017
10:49:25
аа ) ну не знаю, с с++ как-то привык

кстати, очень удобно иногда комбинировать: if (5 < condition && condition < 10)

в этой записи я легко могу понять, что мой condition от 5 до 10

Dmitriy
29.05.2017
10:51:47
в котлине, конечно, все намного красивее )

? animufag ?
29.05.2017
10:54:24
Dmitriy
29.05.2017
10:54:55
черт, а что это дает?

какой-то есть буст от этого?

? animufag ?
29.05.2017
10:55:18
хотя для val наверное нельзя сделать сеттер и тут нужно пояснение

Dmitriy
29.05.2017
10:55:27
от multidex в любом случае уже не избавиться

Quantum Harmonizer
29.05.2017
10:55:41
какой-то есть буст от этого?
Меньше методов, чуть быстрее работает, но чуть больше байт-кода.

Google
Quantum Harmonizer
29.05.2017
10:56:14
от multidex в любом случае уже не избавиться
Чем толще вторичные dex'ы, тем дольше и компиляция, и загрузка классов на pre-lollipop.

? animufag ?
29.05.2017
10:56:28
какой-то есть буст от этого?
ну ты не ощутишь. просто как хорошая привычка в джаве почти везде писать файнал так и тут с инлайнами.

разве с инлайнами комплияция дольше не станет?

Quantum Harmonizer
29.05.2017
10:57:11
inline, правда, не избавляет от метода. Но позволяет ProGuard'у его вырезать.

Dmitriy
29.05.2017
10:58:04
мне кажется, inline очень хорош для библиотек. в своем проекте его пихать - лишнее

хотя как привычка - норм

Quantum Harmonizer
29.05.2017
10:59:26
Почему лишнее?

Dmitriy
29.05.2017
11:01:08
нет большой необходимости от этого

Admin
ERROR: S client not available

Quantum Harmonizer
29.05.2017
11:02:07
Можно запиливать сотни микроскопических функций и свойств, тогда будет ощутимо. Особенно если второй dex пошёл.

Dmitriy
29.05.2017
11:04:38
я правильно понимаю, что все extension fun лучше помечать как inline?

Quantum Harmonizer
29.05.2017
11:06:06
я правильно понимаю, что все extension fun лучше помечать как inline?
Нет, как inline хороши маленькие функции и функции с функциональными параметрами (== функции высшего порядка).

? animufag ?
29.05.2017
11:08:09
а что во втором случае?

какой профит в случае функций высшего порядка?

Quantum Harmonizer
29.05.2017
11:09:41
какой профит в случае функций высшего порядка?
Как же, если она не инлайновая, то ради лямбдочки создаётся анонимный класс, а в declaration-site он выполняется виртуальным вызовом.

Dmitriy
29.05.2017
11:11:46
https://kotlinlang.ru/docs/reference/lambdas.html

? animufag ?
29.05.2017
11:12:00
инлайновая функция всё равно может передать лямбду дальше. видимо смысл в том что по-возможности в инлайновой функции всё заоптимизируется, не-инлайновой - гарантированно не оптимизируется?

? animufag ?
29.05.2017
11:12:38
странно что вообще программистам дали возмонжность решать будет функция инлайновой или нет

Google
Руслан
29.05.2017
11:27:11
Я тут пилю мини фреймворк на котлине, планы наполеоновские: все на котлине, свой DI, корутины и т.д. Вот тут можно посмотреть как сейчас выглядит, очень похоже на bootique. https://github.com/Heapy/komodo/blob/master/komodo-samples/src/main/kotlin/by/heap/komodo/samples/Sample1.kt И чат в телеграм для набрасывания http://telegra.ph/Komodo-Chat-05-27

Руслан
29.05.2017
11:28:37
насколько я видел ktor - это просто rest

Quantum Harmonizer
29.05.2017
11:28:53
Где вообще брать силы чтоб делать что-то своё на замену тому, что работает?)

Руслан
29.05.2017
11:29:10
Думаю главный вопрос, зачем?
1. NIH 2. Котлин везде 3. Kotlin/JS, Kotlin/Native?

Я вообще тот еще говнокодер, но уже видно как классно писать DI для котлина на котлине

Igor
29.05.2017
11:30:48
Я вообще тот еще говнокодер, но уже видно как классно писать DI для котлина на котлине
Да да reified дженерики располагают. Что такое NIH (типа just because I can... или что-то техническое)?

Юра
29.05.2017
12:28:57
Not Invented Here?

https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D0%BD%D0%B4%D1%80%D0%BE%D0%BC_%D0%BD%D0%B5%D0%BF%D1%80%D0%B8%D1%8F%D1%82%D0%B8%D1%8F_%D1%87%D1%83%D0%B6%D0%BE%D0%B9_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8

Ruslan
29.05.2017
12:30:19


Андрей
29.05.2017
12:31:30
а if чем не такой?

Ruslan
29.05.2017
12:31:44
а if чем не такой?
таких условий может быть несколько

Андрей
29.05.2017
12:35:56
Проверка правильная, писать так можно. А на что конкретно ругается? Если навести на красное, то ошибка всплывет.

Ruslan
29.05.2017
12:36:54


через if будет работать нормально

но не хочется кучу if писать

Андрей
29.05.2017
12:38:07
у вас SimpleDateFormat с какого пакета импортируется?

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