miha-x64
10/04/2017, 5:47 PMкакой бы она ни была – это не часть контракта и надеяться на неё нельзяКак же совместимость?
некоторые вопят, что из-за этого java interop не 100% :)Интероп Котлина с Джавой — 100%, а вот Джавы с Котлином...
lewik
10/04/2017, 6:32 PMcaffeine
10/05/2017, 3:43 PMlewik
10/05/2017, 7:49 PMelizarov
10/05/2017, 8:03 PMlewik
10/05/2017, 8:46 PMlewik
10/06/2017, 11:36 AMdata class Data(val name: String = ""); Data().copy()
Оно конечно хорошо, но надо копию не просто так, а с измененным параметром. И, судя по всему, кроме как полностью не указав все параметры и один измененный скопировать не получится. Ну ладно, это временно. Планирую все перевести на котлин, включая js.
Надо сказать сложнее всего писать c immutable, я вот вообще не привык так писать.elizarov
10/06/2017, 6:10 PMval
, но можно было бы менять так же удобно как будто там был var
), но это будет не скоро, так как это не просто.elizarov
10/06/2017, 6:11 PMelizarov
10/06/2017, 6:17 PMMutableList
-> List
это весьма механическая опреация (надо просто вырезать мутирующие методы), поэтому можно переименовать MutableList
в mutable List
, где приставка mutable
как раз и делает это вырезание. Ну и чтобы можно это было к любым классам интерфейсам применять до кучи. Ну это идея в целом. Там много всяких подводных граблей вылезает, которые надо аккуратно обойтиirus
10/09/2017, 1:51 PMlewik
10/11/2017, 3:14 PMapply plugin 'kotlin-platform-kotlin'
)` Проект А является подпроектом B, проект А это platform-jvm
. Я не совсем понимаю, что оно хочет? B дейтсвительно не common, но что в этом такого?elizarov
10/12/2017, 1:59 PMlewik
10/13/2017, 6:21 PMlewik
10/13/2017, 6:42 PMentries.iterator is not a function
Втыкать итератор или есть готовое решение?lewik
10/15/2017, 8:56 AM@JsName
? Наследовать в js-platform?miha-x64
10/18/2017, 9:59 AMlewik
10/19/2017, 8:32 PMdev-priporov
10/20/2017, 12:17 PMlewik
10/20/2017, 4:25 PMprint 1
print 2
А в консоль получаю
111222
Это так консоль работает или у котлина особые циклы?snrostov
10/21/2017, 11:32 AMsnrostov
10/21/2017, 11:35 AMqwert_ukg
10/23/2017, 3:53 AMvoddan
10/30/2017, 12:45 PMumar
11/01/2017, 11:29 AM@CollectionBuilder
и @KeyValueCollectionBuilder
.
Можно проаннотировать существующие в стандартной библиотеке билдеры вроде arrayOf,р listOf, mapOf, etc.
Примеры :
fun <T> List<T>.contains(elements: List<T>) = containsAll(elements)
val list = listOf(1, 2, 3)
list.contains([1, 2])
[2, 3] in list
class Person {
lateinit var friends: List<Person>
lateinit var grades: Map<String, Int>
}
val alice = Person()
alice.friends = [bob, charlie]
alice.grades = [
"math" : 92,
"history" : 89,
"lang" : 97
]
miha-x64
11/01/2017, 12:36 PMdata
на классы, не зная, что он приносит.
Хочется чего-то ещё более понятного и явного в доку написать, чтоб люди не лепили его куда попало...beholder
11/02/2017, 8:36 AMlistOf
и чтобы было как в любимом груви или питончике?snrostov
11/03/2017, 8:24 AMverticalLayout {
view {
как мне кажется было бы удобнее если бы эти методы назывались addVerticalLayout, или что то вроде:
вариант 2:
+VerticalLayout {
+View {
В варинате 2, имхо, проще читать код, т.к. функции билдеров визуально сложно отличить от простых функций с лямбдой (forEach, map и да и if в конце концов).
В простом коде это не заментно, но когда начинается смесь из билдеров и функций лямбд, очень лего запутаться.
Кроме того добавление текста в kotlinx.html уже выглядит также как тут +"text"
snrostov
11/03/2017, 10:09 AMirus
11/03/2017, 12:31 PMval tree = root(
div(classes = "main", render = h(
users()
)),
users(),
p("Test")
)
fun users() = ex {
users.map {
p(it.name)
}
}
fun list() = e {
ul(render = h(
li("First"),
li("Second")
))
}