Comments 14
а чем закончилась история с письмами к Санта-Клаусу? blog.jetbrains.com/blog/2012/12/18/santa-service-at-jetbrains/
Перегружать конструкторы незачем
Да? «Вы неправильно его держите»? А если надо? Если надо по-разному сконструировать в зависимости от типа первого аргумента.
Можно делать вот такой финт ушами:
class Greeter(val name : String) {
fun greet() = println("Hello, ${name}")
}
fun Greeter(val value:Int) = Greeter(value.toString())
fun main(args : Array<String>) {
Greeter(1).greet()
}
А вы уверены, что надо? По описанию похоже на два разных класса с общим родителем!
НЛО прилетело и напомнило что make-функции всё ещё доступны человечеству.
Перегружать конструкторы незачем
А как без перегрузки конструктора сделать что-то вроде:
class A {
private readonly B _b;
private readonly C _c;
A(B b) {
_b = b;
_c = f1(b);
}
A(C c) {
_c = c;
_b = f2(c);
}
}
?
Если мы сделаем конструктор:
A(B b = null, C c = null) {
...
}
то из него не будет понятно, что надо обязательно указать по крайней мере один(или вообще только один) из параметров.
Думаю как то так:
А еще лучше написать так:
и тогда компилятор сгенерирует toString(), equals(), hashCode() и функции для доступа к компонентам класса, чтобы можно было писать так:
class A(val b: B, val c: C);
fun A(b: B) = A(b, f1(b));
fun A(c: C) = A(f2(c), c);
А еще лучше написать так:
data class A(val b: B, val c: C);
и тогда компилятор сгенерирует toString(), equals(), hashCode() и функции для доступа к компонентам класса, чтобы можно было писать так:
val (b, c) = funWhichReturnsA()
Я вот читаю новости про новый язык и думаю: с одной стороны, как Java-разработчик, я вас поддерживаю — самого раздражают многие ограничения Java. С другой стороны — разве все баги в IDEA уже пофикшены? И возникает возмущение — как же так, не могут пофиксить давний баг, который лично мне мешает, но при этом тратят силы на еще один язык.
Scala придумали в 2003, и до сих пор в компиляторе находят баги. Некоторые баги в IDEA живут годами. Отсюда делается вывод, что баги в Kotlin тоже будут жить годами. А ведь баг в языке гораздо серьезней бага в IDE.
Scala придумали в 2003, и до сих пор в компиляторе находят баги. Некоторые баги в IDEA живут годами. Отсюда делается вывод, что баги в Kotlin тоже будут жить годами. А ведь баг в языке гораздо серьезней бага в IDE.
Kotlin позиционировался как средства дальнейшей разработки IDEA.
Если он повысит эффективность разработки, то повысится и скорость исправления багов в IDEA.
Это как утверждать, что рефакторинг вреден, так как вместо него можно было бы фиксить баги.
Кстати, баги в компиляторе scala довольно не критичны. Да, на них можно наткнуться, но не то, чтобы просто.
Если он повысит эффективность разработки, то повысится и скорость исправления багов в IDEA.
Это как утверждать, что рефакторинг вреден, так как вместо него можно было бы фиксить баги.
Кстати, баги в компиляторе scala довольно не критичны. Да, на них можно наткнуться, но не то, чтобы просто.
Sign up to leave a comment.
Вышел Kotlin M5