Size: a a a

Kotlin Community

2020 November 19

с#

саша сок #KotlinGang... in Kotlin Community
Viacheslav Blinov
господа, а что за несправедливость такая? неужели таки вложенный дестракчуринг не поддерживается?
https://pl.kotl.in/PTLnWbd-y

типа
    val ((x, y), z) = (1 to 2) to 3

вроде-ж не рокет-сайнс взять component1 и от него еще component1 и component2

З.Ы. я не пытаюсь туплы переизобрести, мне просто нет смысла церемониться со структурами и мемберами в данном кейсе и поэтому хотелось сделать код чуточку проще
к сожалению не поддерживается :(
источник

Na

Neon an Děv 8) in Kotlin Community
Andrew Mikhaylov
С точки зрения котлина вы в поле типа Int пытаетесь засунуть значение типа String. Непосредственно превращение строкового представления цвета в числовое — вопрос, касающийся андроида. По которому, тем не менее, вам @y9neon выше дал ответ.
Я уже ответил по поводу этого в андроид ру
источник

VB

Viacheslav Blinov in Kotlin Community
саша сок #KotlinGang
к сожалению не поддерживается :(
срамота
источник

Na

Neon an Děv 8) in Kotlin Community
А то я вообще сразу не заметил шедевральный background.toString()
источник

с#

саша сок #KotlinGang... in Kotlin Community
Viacheslav Blinov
срамота
источник

VB

Viacheslav Blinov in Kotlin Community
да, уже почитал. В аргументации против этой фичи тоже сплошная срамота
источник

с#

саша сок #KotlinGang... in Kotlin Community
Viacheslav Blinov
да, уже почитал. В аргументации против этой фичи тоже сплошная срамота
источник

AM

Andrew Mikhaylov in Kotlin Community
Viacheslav Blinov
да, уже почитал. В аргументации против этой фичи тоже сплошная срамота
Вот это срамота:
> Because it is needless complication of the compiler
А вот поинт касательно деструктуризации по порядку вместо имени и отличный способ поотстреливать себе ноги вполне логичен вродь.
источник

VB

Viacheslav Blinov in Kotlin Community
Andrew Mikhaylov
Вот это срамота:
> Because it is needless complication of the compiler
А вот поинт касательно деструктуризации по порядку вместо имени и отличный способ поотстреливать себе ноги вполне логичен вродь.
какие имена если речь например о List, который поддерживает вплоть до component5?
источник

с#

саша сок #KotlinGang... in Kotlin Community
Andrew Mikhaylov
Вот это срамота:
> Because it is needless complication of the compiler
А вот поинт касательно деструктуризации по порядку вместо имени и отличный способ поотстреливать себе ноги вполне логичен вродь.
val ((userId, userHex), role) = userRole

офигенно же.....
источник

AM

Andrew Mikhaylov in Kotlin Community
Viacheslav Blinov
какие имена если речь например о List, который поддерживает вплоть до component5?
В случае с именами и парами никакие, конечно. А вот с дата классами это прямая дорога в ад. Свопнул две строковых проперти местами — можешь в коммит мессадже писать "удачной отладки, суки" сразу
источник

VB

Viacheslav Blinov in Kotlin Community
непонятно почему тогда вообще поддерживать дестракчуринг, если это отличный способ отстрелить себе ногу
источник

с#

саша сок #KotlinGang... in Kotlin Community
Andrew Mikhaylov
В случае с именами и парами никакие, конечно. А вот с дата классами это прямая дорога в ад. Свопнул две строковых проперти местами — можешь в коммит мессадже писать "удачной отладки, суки" сразу
это согласен, но проблема тут не в nested
источник

AM

Andrew Mikhaylov in Kotlin Community
Нестед просто радикально увеличивают шансы такое сделать :)
источник

VB

Viacheslav Blinov in Kotlin Community
Andrew Mikhaylov
В случае с именами и парами никакие, конечно. А вот с дата классами это прямая дорога в ад. Свопнул две строковых проперти местами — можешь в коммит мессадже писать "удачной отладки, суки" сразу
это скорее аргумент против того что data class генерирует componentX функции, он не имеет никакого реального отношения к дестракчурингу самому по себе
источник

AM

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

AM

Andrew Mikhaylov in Kotlin Community
Viacheslav Blinov
это скорее аргумент против того что data class генерирует componentX функции, он не имеет никакого реального отношения к дестракчурингу самому по себе
С одной стороны да, с другой в языке без таплов и без автоматической деструктуризации дата классов было бы безумно весело работать с цепочками операторов в монадках.
источник

с#

саша сок #KotlinGang... in Kotlin Community
Andrew Mikhaylov
С одной стороны да, с другой в языке без таплов и без автоматической деструктуризации дата классов было бы безумно весело работать с цепочками операторов в монадках.
ну если очень надо то и самому можно [было бы] сделать

data class A(...) {
   operator fun component1() = username
}
источник

AM

Andrew Mikhaylov in Kotlin Community
саша сок #KotlinGang
ну если очень надо то и самому можно [было бы] сделать

data class A(...) {
   operator fun component1() = username
}
Можно, конечно. Ещё можно парами пользоваться, на которых это есть. Везде трейдоффы 🤷‍♂️
источник

VB

Viacheslav Blinov in Kotlin Community
саша сок #KotlinGang
ну если очень надо то и самому можно [было бы] сделать

data class A(...) {
   operator fun component1() = username
}
это кстати однозначно бы решило ту самую проблему, обозначенную выше
источник