@kotlin_lang

Страница 382 из 982
Mikhail
21.10.2017
17:19:10
прочесть может что посоветуете?

Mikhail
21.10.2017
17:20:59
код из вот этого https://habrahabr.ru/post/323862/ поста пытаюсь перевести в котлин

Google
Mikhail
21.10.2017
17:24:14
пробовал. Пришлось руками дописывать. Конвертер вообще подставлял "звездочки"

Gor
21.10.2017
17:24:53
куда копать чтобы разрешить? Агалогичный код на java работает без проблем...
пробовал в ViewRenderer<SomeModel, SomeViewHolder> с in/out поиграться?

Mikhail
21.10.2017
17:25:15
да)

Anton
21.10.2017
18:00:33
класный кодстайл

в значении уродский

balolam
21.10.2017
18:01:49
Та решение само по себе неудачное, оно или для тривиальных вещей или вообще не использовать.

Anton
21.10.2017
18:02:09
я не особо разбирался но он кажись тупо скопировал дорфмана решение)))

а адаптер делегейтс норм

Vitalii
21.10.2017
19:08:11
в значении уродский
Согласен, но читается, кстати, легче.

Dmitriy
22.10.2017
15:52:37
Всем привет , скажите пожалуйста а реально ли сделать функцию с параметром неопределенного типа(), а потом в самой функции уже смотреть что передают и делать свои дела?

Google
Dmitriy
22.10.2017
15:55:34
спасибочки

Artem
22.10.2017
15:55:35
Ну ты сейчас о Дженериках говоришь. Ну а в самой функции уже будешь проверять тип when(T){ .....}

Dmitriy
22.10.2017
15:56:04
Очень хорошо

Artem
22.10.2017
15:56:43
Quantum Harmonizer
22.10.2017
15:57:47
if
Что «if»?

Dmitriy
22.10.2017
15:58:41
when хорошо работает для этого, только я бы тебе не советовал так делать через if вместо when

Dmitriy
22.10.2017
16:00:00
хз when вроде как swich ,if проще

Boris
22.10.2017
16:00:00
нет, я не про иф говорю а про то, чтобы например сделать несколько разных функций, которые принимают параметры разных типов

такой подход он для джаваскрипта работает или для груви, но в котлине куча средств, как решить вопрос типов в компайл-тайме

если поделишься своей задачей, я думаю тут тебе посоветуют как лучше это сделать на котлине

Dmitriy
22.10.2017
16:06:52
делаю простую сохранялку настроек в приложении использоваться будет не часто и нет больших объемов вот так пока слепил(не проверял еще) //запись fun save(key:String,value:Any){ //смотрим что передали when (value) { //записываем is Int -> settings!!.edit().putInt(key,value).apply() is String ->settings!!.edit().putString(key,value).apply() is Boolean ->settings!!.edit().putBoolean(key,value).apply() else -> return } }

Igor
22.10.2017
16:08:25
Можно же перегруженных методов наделать (а бы ли бы тайпклассы… ?) И что у тебя там с !! ?

Dmitriy
22.10.2017
16:09:54
И что у тебя там с !! хз студия подсказала так сделать

Google
Boris
22.10.2017
16:12:59
Ну вот да, вполне можно было бы для каждого типа сделать отдельный метод

Это во всех смыслах лучше

Vlad
22.10.2017
19:02:50
Привет всем. Пробую писать android проект на котлине. Но что то не получается заюзать dagger 2. Компонет, модуль создал - все компилируется. Но как только где то добавляю @Inject выдает вот эту ошибку при компиляции http://prntscr.com/h0m8kp. gradle: http://prntscr.com/h0mbtp http://prntscr.com/h0mao2 http://prntscr.com/h0masq AppModule: http://prntscr.com/h0mb15 AppComponent: http://prntscr.com/h0mb53 В чем может быть проблема?

Anton
22.10.2017
19:04:55
капт подрубил?

или generateStubs

Vlad
22.10.2017
19:05:09
apply plugin: 'kotlin-kapt'

читал такое задепрекейтили kapt { generateStubs = true }

Евгений
22.10.2017
19:14:00
Как задепрекейтили, а чё стабы теперь автоматом генерятся?

Попробуй ещё в gradle прописать зависимость не просто Даггер а именно Даггер андроид. Посмотри у Даггера на гитхабе как подрубить

Bulat
22.10.2017
20:43:24
В чем разница в вызовах someVar?.someMethod() и someVar?.let{it.someMethod()} ?

Bulat
22.10.2017
20:45:02
ну то есть да

:)

Dibro
22.10.2017
20:45:07
и разницы нет

Bulat
22.10.2017
20:45:21
спасибо

Dibro
22.10.2017
20:46:00
почему?
там не было it

Google
Саша
22.10.2017
23:14:29
Что такое .apply и в чем разница между .let? Насколько я знаю .let это как if(notnull), а .apply?

Artem
22.10.2017
23:22:00
Если я не ошибаюсь, то ЭПЛАЙ возвращает(АВТОМАТИЧЕСКИ) тебе объект после всех проведенных над ним операций, а в ЛЭТ ты возвращаешь значение с помощью блока РЕТУРН.

Если я не прав, то пожалуйста, поправьте меня.

Anton
22.10.2017
23:38:32
https://medium.com/@tpolansk/the-difference-between-kotlins-functions-let-apply-with-run-and-else-ca51a4c696b8

Artem
23.10.2017
07:15:03
Могли бы вы рассказать как? С ламбдами опыта мало.

Vic
23.10.2017
07:18:07
Лучше почитать доку

Quantum Harmonizer
23.10.2017
07:18:25
Могли бы вы рассказать как? С ламбдами опыта мало.
Из лямбды возвращается последнее выражение. Если нужно использовать return, то допускается только labeled. Всё это отлично описано на сайте.

Vic
23.10.2017
07:19:15
Плюс инлайн, ноинлайн, кроссинлайн - там свои особенности

Artem
23.10.2017
07:21:50
https://medium.com/@tpolansk/the-difference-between-kotlins-functions-let-apply-with-run-and-else-ca51a4c696b8
Ну из этого сайта последние выражение закомментировано как retrun block, именно это я и имел ввиду.

Anton
23.10.2017
07:22:10
ну поздравляю)

там удобная табличка снизу

Artem
23.10.2017
07:23:40
Я ее видел.

Quantum Harmonizer
23.10.2017
07:29:37
Странно, что в Receiver (this) они написал this@MyClass там, где ресивера нет. То есть я понимаю, что они имели в виду, но выглядит неочевидно.

Anton
23.10.2017
07:33:17
Я ее видел.
еще раз поздравляю. статья не тебе а чуваку который вопрос задал

Artem
23.10.2017
07:34:35
еще раз поздравляю. статья не тебе а чуваку который вопрос задал
Ещё раз спасибо. Статья мне тоже была полезна.

Igor
23.10.2017
09:38:45
А это норм? Не планируется какие-то оптимизаций для string-interpolatins? https://i.gyazo.com/8d5e4afc4e8d12f82ba8907494453a7f.png

Руслан
23.10.2017
09:42:54
Ну вполне, SB очень заоптимизирован в jvm

Quantum Harmonizer
23.10.2017
09:44:06
ну, append("") можно было бы и выпилить)

и создание буфера тогда становится очевидно бесполезным

Google
Руслан
23.10.2017
09:45:32
Ну можно микробенч тут написать, ставлю на то, что не будет разницы с return smt.toString()

Vladimir
23.10.2017
09:48:33
А ведь да, после оптимизаций JIT тут может не остаться ничего лишнего. Но мне кажется, лишний байткод всё равно ни к чему.

Quantum Harmonizer
23.10.2017
09:50:01
Это очень неоднозначный вопрос. С одной стороны, чистый байт-код — классно; с другой, это очень сильно усложнит компилятор оптимизациями, которые, вероятно, уже делаются рантаймом.

Vladimir
23.10.2017
09:51:18
Интересно, что генерит компилятор Groovy в такой ситуации

Roman
23.10.2017
09:52:52
https://youtrack.jetbrains.com/issue/KT-19738

Quantum Harmonizer
23.10.2017
09:57:55
Интересно, что генерит компилятор Groovy в такой ситуации
invokevirtual groovy.lang.Nevedomaya.huynia()V bipush 100 invokestatic BlackHole.comsumeCpu(I)V iload ?? invokevirtial Wtf.toString()Ljava.jang.String;

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