
Михаил
05.06.2017
13:35:42
а как его инстацировать?

Anton
05.06.2017
13:36:01
не ну в джаве же есть класс Void

Руслан
05.06.2017
13:36:05
* The {@code Void} class is an uninstantiable placeholder class to hold a

Михаил
05.06.2017
13:36:15
+

Google

Руслан
05.06.2017
13:36:37
Я так понял речь о том что инстанс нельзя сделать

Anton
05.06.2017
13:37:51
Void в джаве это Unit в котлине так?
а Nothing вообще отдельная вещь

Михаил
05.06.2017
13:38:26

Igor
05.06.2017
13:38:39
Void в джаве это Unit в котлине так?
Void как понятия в Kotlin вообще нет.
Когда ты возвращаешь Unit (или делаешь процедуру) ты возвращаешь инстанц синглтона.
Др вопрос как это на байткод ложится и интеропт с Java.

Михаил
05.06.2017
13:39:36
просто было бы круто чтоб котлин не ругался если я явно не возращаю Unit из джавы

Руслан
05.06.2017
13:39:39
Система типов тут консинсентна
А в джаве есть void, и костыль Void

? animufag ?
05.06.2017
13:39:58

Михаил
05.06.2017
13:40:33

? animufag ?
05.06.2017
13:40:38
хех

Михаил
05.06.2017
13:40:45
Nothing который

Андрей
05.06.2017
13:41:27
А в джаве есть void, и костыль Void
Этот костыль для генериков хорош. Допустим если нужно void метод обернуть в Callable, то создаем Callable<Void>, а из самой лямбды можем null вернуть.

Google

Anton
05.06.2017
13:41:55
да я его тоже только для дженериков применял

Руслан
05.06.2017
13:42:33
Вот как Nothing выглядит в джаве
public final class SuspendKt {
@NotNull
public static final Void test() {
throw (Throwable)(new RuntimeException());
}
}
fun test(): Nothing {
throw RuntimeException()
}

Igor
05.06.2017
13:42:49

Руслан
05.06.2017
13:43:13

Anton
05.06.2017
13:43:36
как any?

Михаил
05.06.2017
13:43:46
вообще когда-нибудь планируют делать джаву ради людей, а не ради обратной совместимости
?

Руслан
05.06.2017
13:43:57
Ceylon

Андрей
05.06.2017
13:44:03

Руслан
05.06.2017
13:44:24

Андрей
05.06.2017
13:44:43
Было бы не плохо
Но крупные компании опять могут протормозить все, как с Jigsaw в случае 1.9

Михаил
05.06.2017
13:46:00
Или речь о Java 2.0?
типа да. очень интересно поглядеть что будет когда они все таки дропнут обратную совместимость

Андрей
05.06.2017
13:46:28
Хотя может возникнуть ситуация как с Питоном

Anton
05.06.2017
13:46:40
а что там?
типа 3 вышел но никто не юзает?

Руслан
05.06.2017
13:47:17
Так вся фишка Java в том, что она почти не ломается от релиза к релизу. Рынок тех кто лучшая джава уже сформировался вроде, что им там делать

Михаил
05.06.2017
13:48:08
ну тогда джавы 2.0 не будет :(

Google

Андрей
05.06.2017
13:48:13
а что там?
Многие библиотеки на 3-ю версию до сих пор не переехали, и приходится и 2-ую, и 3-ю версии паралельно развивать.
У каждой из веток уже свой зоопарк библиотек.

Михаил
05.06.2017
13:48:20
будет 1.10 , 1.11 ...

Руслан
05.06.2017
13:48:32
Мое мнение что так, да

Boris
05.06.2017
14:00:27
И ломать обратную совместимость никто не будет, в этом просто нет никого смысла

Руслан
05.06.2017
14:01:48

Михаил
05.06.2017
14:01:55
тут проще выпустить новый яп, чем ломать обратную совместимость

Quantum Harmonizer
05.06.2017
14:02:19
Можно мягко ломать.
Выпилить, наконец, методы и классы, на которых @Deprecated поставили 20 лет назад.

Михаил
05.06.2017
14:02:45

Boris
05.06.2017
14:02:46

Руслан
05.06.2017
14:03:04
ну там было 5.0, потом уже 6, 7, 8, 9

Boris
05.06.2017
14:04:12

Андрей
05.06.2017
14:05:15

Quantum Harmonizer
05.06.2017
14:05:34

Igor
05.06.2017
14:05:53
Сделали же JEP 277: Enhanced Deprecation
Но язык это все равно не исправит.

Boris
05.06.2017
14:06:13

Quantum Harmonizer
05.06.2017
14:06:55

Google

Михаил
05.06.2017
14:08:23
Там 6..8.
там 6, и есть только часть фишек из 7 и 8

Quantum Harmonizer
05.06.2017
14:08:42

Михаил
05.06.2017
14:08:54
это не вся джава 7 или 8
об этом и Бреслав говорил

Quantum Harmonizer
05.06.2017
14:09:28
Там и не вся Java 6 :)

Admin
ERROR: S client not available

Umren
05.06.2017
14:16:13
зато весь котлин

Quantum Harmonizer
05.06.2017
14:17:00
О_о неплохое сравнение)

Adam
05.06.2017
20:55:40
Что-то я не пойму, интерфейсы миксинами стали? interface MyInterface {
val prop: Int // abstract
val propertyWithImplementation: String
get() = "foo"
fun foo() {
print(prop)
}
}
class Child : MyInterface {
override val prop: Int = 29
}

Dibro
05.06.2017
21:05:45

Adam
05.06.2017
21:09:31
раньше в java-интерфейсе методы не могли иметь реализации, я правильно понимаю?

Dibro
05.06.2017
21:09:47
да

Adam
05.06.2017
21:11:06
«абстракции не должны зависеть от реализаций» - и бла-бла-бла
мне этот принцип нравился

? animufag ?
05.06.2017
21:16:06
на самом деле смысл файнал методов в интерфейсе небольшой, когда есть экстеншен методы да и просто топлевел функции

Adam
05.06.2017
21:16:55
а по контексту static-методов

? animufag ?
05.06.2017
21:21:23
забей. я думал их переопределять нельзя

Михаил
05.06.2017
21:52:53
народ. анко много методов с собой тащит?

Google

Михаил
05.06.2017
21:58:58
5к :/
кто-нибудь в проде использует, есть камни подводные, кроме превью на которую пофиг
вопрос по анко. как там стиль у вью задать? есть что-нибудь из коробки?

Sasha
06.06.2017
02:47:54

Axrorxo'ja
06.06.2017
06:35:16
Привет всем смотрел коотеркнифе и ети строчки ни понял, ктота сможет обяснит
private val Activity.viewFinder: Activity.(Int) -> View?get() = { findViewById(it) }
private fun <T, V : View> required(id: Int, finder: T.(Int) -> View?)= Lazy { t: T, desc -> t.finder(id) as V? ?: viewNotFound(id, desc) }

Quantum Harmonizer
06.06.2017
07:39:54

Михаил
06.06.2017
07:46:15

Anton
06.06.2017
07:50:33
T.(Int) а это что?

DarkMentat
06.06.2017
07:51:30
T.(Int) -> View

Михаил
06.06.2017
07:51:36
+

DarkMentat
06.06.2017
07:51:49
Лямбда с ресивером, верно?

Anton
06.06.2017
07:52:03
(Int) -> View? вот это я понял а что за дженерик еще с точкой

Михаил
06.06.2017
07:52:36
Лямбда которая вызывается у типа T , в которую передается Int и которая возвращает View?
T будет доступно в лямбде как this