Size: a a a

Kotlin Community

2020 March 15

AN

Alexander Nozik in Kotlin Community
Было бы интересно посмотреть тесты на не математических задачах, я ожидаю, что в тырпрайзе должен быть сущестенный выигрыш за счет escape analysis.
источник

ℕo ℕame in Kotlin Community
в котлине нельзя что-то вроде
Constructor(Obj obj) { 
  SomeType some = obj.returnType();
  super(some);
}
?
источник

ℕo ℕame in Kotlin Community
Без компаньонов. И если вызов super обязателен
источник

AN

Alexander Nozik in Kotlin Community
ℕo ℕame
в котлине нельзя что-то вроде
Constructor(Obj obj) { 
  SomeType some = obj.returnType();
  super(some);
}
?
Это на каком языке? Вызов конструктора предка обязателен, если предок имеет конструктор, но синтаксис совсем другой.
источник

ML

Mikhail Levchenko in Kotlin Community
Для тех, кто, как и я, не может дождаться когда в kotlin подвезут опциональные запятые в аргументах, сделал такой коротенький джист для LivePlugin, который позволяет менять запятую в конце строки по кейбайнду + инструкция как это добавить в конфиг ideavim, если им пользуетесь. https://gist.github.com/Mishkun/7f39bb762033b8aadc60feffb6fc18d5
источник

AN

Alexander Nozik in Kotlin Community
ℕo ℕame
в котлине нельзя что-то вроде
Constructor(Obj obj) { 
  SomeType some = obj.returnType();
  super(some);
}
?
Я подозреваю, что вы хотите что-то вроде
class MyClass(some: SomeType): MyParent(some){
 val property get() = some.property
}
источник

AM

Andrew Mikhaylov in Kotlin Community
Скорее class MyClass(obj: Obj): SuperClass(obj.returnType())
источник

ℕo ℕame in Kotlin Community
Alexander Nozik
Это на каком языке? Вызов конструктора предка обязателен, если предок имеет конструктор, но синтаксис совсем другой.
В примере - джава. Предок - класс джавы
источник

ℕo ℕame in Kotlin Community
и ругается на то, что нужен вызов праймари конструктора
источник

AN

Alexander Nozik in Kotlin Community
Давно я на джаве не писал.... слово Constructor сбило. Ну значит то, что Андрей написал
источник

AN

Alexander Nozik in Kotlin Community
Хотя в котлин так делать не модно
источник

ℕo ℕame in Kotlin Community
Andrew Mikhaylov
Скорее class MyClass(obj: Obj): SuperClass(obj.returnType())
А если с телом?
источник

AN

Alexander Nozik in Kotlin Community
ℕo ℕame
А если с телом?
а что должно быть в теле?
источник

AM

Andrew Mikhaylov in Kotlin Community
Тело можно в приватную функцию рядом с классом положить, к примеру.
источник

AN

Alexander Nozik in Kotlin Community
В котлин желательно убирать вообще всю возможную логику из конструктора и перекладывать ее в фактори-функции, или вообще избавляться
источник

ℕo ℕame in Kotlin Community
Alexander Nozik
а что должно быть в теле?
Какието вычисления и вызов super, например, в середине
источник

AN

Alexander Nozik in Kotlin Community
ℕo ℕame
Какието вычисления и вызов super, например, в середине
Это крайне дурная практика и в джаве, так что делайте фактори функцию
источник

AA

Andrey Antipov in Kotlin Community
ℕo ℕame
Какието вычисления и вызов super, например, в середине
В середине дочернего конструктора вызывать super абсолютно не корректно. На момент работы дочернего конструктора родитель должен быть полностью инициализирован, то есть super надо вызывать строго вначале
источник

AN

Alexander Nozik in Kotlin Community
Я, к слову, когда на котлин перешел, не сразу почувствовал, но иерархия конструкторов - это очень классная штука.
источник

VN

Viktor Noskin in Kotlin Community
Alexander Nozik
Я, к слову, когда на котлин перешел, не сразу почувствовал, но иерархия конструкторов - это очень классная штука.
Может ему какую-то начальную натсройку объекта сделать надо, тогда init {} может ему подойдёт?
источник