@kotlin_lang

Страница 574 из 982
Stanislau
06.03.2018
10:12:58
Потому что там где результат 3, то число 3.0F

Bogdan
06.03.2018
10:13:48
Stanislau
06.03.2018
10:14:06
Так и сделал. Но некрасиво. Math.round((int.toFloat / int.toFloat) * 10)

Георгий
06.03.2018
12:17:17
Так и сделал. Но некрасиво. Math.round((int.toFloat / int.toFloat) * 10)
ну оба числа к флоату можно и не приводить, достаточно одного плюс можно использлвать DecimalFormat

Google
Mikhail
06.03.2018
12:34:35
Так и сделал. Но некрасиво. Math.round((int.toFloat / int.toFloat) * 10)
Если сильно много где недо, сделай var Int.f = toFloat() и используй int.f

Stanislau
06.03.2018
12:35:46
спасибо за советы

Жабра
06.03.2018
12:40:55
По поводу DI вместо синглтонов - "правильно" ли я сделал, что переделал object-ы на class-ы, и просто однажды инициализирую отдельно вынесенную вне классов переменную и юзаю её?

Ну в тех случаях, когда синглтон всё же имеет зависимости.

Oleg
06.03.2018
12:47:20
String... strings, как такое множество написать на котлине ?

Alex
06.03.2018
12:50:05
fun f(vararg strings: String)

Andrew
06.03.2018
12:58:19
Ну в тех случаях, когда синглтон всё же имеет зависимости.
"Настоящий" синглтон по определению не может иметь зависимостей, потому да, правильно. В ситуации с ивентбасом и рефлексией лучше всё равно не сделаешь, на мой взгляд. Вполне логично держать в отдельном контейнере все сервисы, которые в качестве зависимости получают шину и дальше живут своей жизнью.

Vladislav
06.03.2018
14:10:17


Не допру куда .!! вставить

Вообще как в котине со стримами, норм?

Alex
06.03.2018
14:11:18
authorities!!

А вообще стримы не нужны

Google
Alex
06.03.2018
14:11:45
Есть куча эктеншн-методов, которые делают стримы ненужными

https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/index.html

Руслан
06.03.2018
14:13:01
тут скорее Mutable в Immutable запихивается

Vladislav
06.03.2018
14:13:54
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/index.html
Причем тут коллекции и стримы, этож разные вещи

Alex
06.03.2018
14:14:09
В джаве, не в Котлине.

Руслан
06.03.2018
14:17:37
скопируй текст ошибки из консоли в общем и покажи весь код

Dibro
06.03.2018
14:18:03
Руслан
06.03.2018
14:18:09
какой тип в контрукторе не видно

Dibro
06.03.2018
14:18:30
val list: List<Any> = mutableListOf()

Руслан
06.03.2018
14:18:43
да, я тупанул

Vladislav
06.03.2018
14:43:12
скопируй текст ошибки из консоли в общем и покажи весь код
Всё, нашел свой косяк. У меня параметр authorities был как vararg, и надо было применить * к этому параметру

Но за наводку по коллекциям спасибо, похоже функционал стримов они поддерживают

Руслан
06.03.2018
14:43:53
Ну и текст ошибки неправильный :)

Vladislav
06.03.2018
15:57:56
Есть такой код: val textInputLayout : TextInputLayout = when (formField.fieldIdentifier){ SignUpPresenter.FormIdentifier.FIRST_NAME -> textInputLayoutFirstName SignUpPresenter.FormIdentifier.LAST_NAME -> textInputLayoutLastName SignUpPresenter.FormIdentifier.PATRONYMIC -> textInputLayoutPatronymic SignUpPresenter.FormIdentifier.PHONE_NUMBER -> textInputLayoutPhoneNumber } Как-нибудь можно не повторять SignUpPresenter.FormIdentifier. как это было в старушке яве?

Siarhei
06.03.2018
15:59:33
да

Жабра
06.03.2018
15:59:51
data class Conversation ( val contact: Contact, val messages: ArrayList<Message> = ArrayList(), val messageChannel: Channel<Message> = Channel() ) Почему когда обращаюсь к каналу, он просит меня удостовериться, что тот не null??

Vladislav
06.03.2018
16:01:10
да
а как?

Google
Жабра
06.03.2018
16:01:11
вроде не должен
Я тоже так считаю, но требует.

покажы код где просит
conv?.messageChannel?.send(...)

Убираю проверку - ругается.

Bogdan
06.03.2018
16:02:24
conv?.messageChannel?.send(...)
conv как объявляешь

?

Жабра
06.03.2018
16:02:47
conv как объявляешь
А какая разница? Я ж проверил что это не null

Gleb
06.03.2018
16:02:53
conv?.messageChannel - nullable

((conv)?.messageChannel)?.send(...)

Bogdan
06.03.2018
16:03:54
А какая разница? Я ж проверил что это не null
большая, после первой проверки на нал у тебя может быть нал, соотвецтвено всю цепочку проверяешь на нал

Жабра
06.03.2018
16:04:04
Ор

Bogdan
06.03.2018
16:04:49
var c: Conversation норм val c: Conversation? - делаешь проверки

Gleb
06.03.2018
16:05:16
если не хочешь проверять всю цепочку, пиши с let conv?.let { it.messageChannel.send(...) }

Lev
06.03.2018
17:45:27
https://github.com/nosix/vue-kotlin/tree/master/vuekt-plugin Как этот плагин работает? Конретно Js2VueTask - не понятно "node <js2vue translator>.js" - что за кавычки угловые такие

Lev
06.03.2018
17:49:36
Спасибо (матерится)

Kirill
06.03.2018
17:49:54
а ты в идее код смотришь или прямо на гитхабе?

Lev
06.03.2018
17:52:58
В идее. Я не догадался посмотреть куда код идет. Я редко работал со сторонними либами, обычно ридми прочитал и ок. А тут мне очено хочется vue+kotlin. Вроде, сам плагин простой, но я не понимаю как он срабатывает. Этот проект, что я скинул, мне кажется слегка усложненным. Я пытаюсь разобраться как именно он работает, потому что хочу использовать его в своем рабочем проекте. А так как этот nosix забил на проект (я спрашивал), мне надо быть уверенным, что в случае чего я сам допилю проект.

В оправдание могу сказать что имя аргумента name чет совсем не говорящее...

А... он просто сами файлы запускает... Наконец то... ProcessBuilder(nodeCommand.absolutePath, script.absolutePath) .directory(workingDir) .apply { environment().put("NODE_PATH", nodeModulesDir.absolutePath) } .startWithRedirectOnFail(project, "node <js2vue translator>.js") Он просто сами файлы запускает. А в файлах есть вызов, функции, который переделает сами эти файлы в .vue Либу японец писал. А я все искал что же он там запускает и недоумевал зачем перевод в vue делать в самом же котлин-файле. Типа как же он это в рантайме переводит, надо же до рантайма

Google
Albert
06.03.2018
18:08:06
ребят. у кого-нибудь было такое что kapt3 генерил неправильные java классы

у меня почему-то генерируются java классы (которые с kt идут) со старыми значениями полей

Admin
ERROR: S client not available

Lev
06.03.2018
18:45:11
Ща вообще не понял... посмотрю kotlin react

Vladislav
06.03.2018
18:47:11
Ща вообще не понял... посмотрю kotlin react
А что конкретно непонятно?

Lev
06.03.2018
19:22:26
А что конкретно непонятно?
"проще написать небольшой wrapper и билдер для рендер функции" - рендер функции чего и как это вообще будет работать?

Vladislav
06.03.2018
19:30:57
В Vue, компоненты можно не только с помощью шаблонов, но и с помощью рендер-функций описывать. Если создать свой dsl, который будет реализовывать логику этих рендер-функций, то компоненты будет так же легко описывать как и html шаблоны в kotlinx.html. Посмотрите статью на kotlinlang про type-safe builders.

Lev
06.03.2018
19:32:48
Но ничто не мешает его написать на билдере а потом просто плагином это исполнить

Я вот не могу этот плагин никак запустить, там устаревшие версии чтоли... Обнволяю версии - вообще все сыпется

И совсем не понятно как он находит отдельный js файлы после котлина. Я думал они пишутся сразу в один файл

Vladislav
06.03.2018
19:34:07
Плагин это лишняя сложность, это нужно в небольшую библиотеку выносить

Lev
06.03.2018
19:34:47
Давайте в личку

Bogdan
06.03.2018
20:21:30
Да что вы

Это может еще кому-то пригодится

Tipok
07.03.2018
08:05:41
interface OnChangeListener { fun onChange(uri: Uri, uri1: Uri) } fun Builder(uri: Uri, listener: OnChangeListener) в Java запускаю эту ф-цию так: BrowserObserver.Companion.Builder(uri, this::handleUri); //Где handleUri это ф-ция: private void handleUri(Uri listenedUri, Uri emittedUri) как это будет выглядеть в kotlin?

Tipok
07.03.2018
08:18:44
fun Builder(uri: Uri, listener: (Uri, Uri) -> Unit)
Спасибо, а могу я как-то еще избавиться от lateinit? private lateinit var listener: (Uri, Uri) -> Unit

Google
Dibro
07.03.2018
08:20:17
Вот так. var listener: (Uri, Uri) -> Unit
чего-то ору с твоего ответа

Tipok
07.03.2018
08:20:58
Спасибо

Глеб
07.03.2018
08:47:07
Господа, нужна ваша помощь. Есть документация по sealed class'ам - http://kotlinlang.org/docs/reference/sealed-classes.html

Есть сами классы

sealed class State { object Offline : State() data class Online(val authenticated: Boolean) : State() data class Recovering(val count: Int) : State() { fun delay(): Long = TimeUnit.SECONDS.toMillis(count.toLong()) fun canRecover(): Boolean = count < 30 } }

И вот что-то смарт-каст не работает

https://i.imgur.com/6l61Uup.png

Подозреваю, что дело в том, что state - это property и var

whalemare
07.03.2018
08:49:05
Глеб
07.03.2018
08:50:03
Эх, либо я опять в глаза долблюсь, либо этот нюанс в документации несколько опущен

whalemare
07.03.2018
08:50:24
Эх, либо я опять в глаза долблюсь, либо этот нюанс в документации несколько опущен
по крайней мере с null-ами именно так обстоят дела. здесь скорее всего тоже самое

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