@kotlin_lang

Страница 174 из 982
Михаил
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
Void в джаве это Unit в котлине так?
void не инстанцируется unit инстнцируется nothing скорей всего существует на уровне системы типов котлина (без класса)

? 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
Этот костыль для генериков хорош. Допустим если нужно void метод обернуть в Callable, то создаем Callable<Void>, а из самой лямбды можем null вернуть.
Я так понимаю, это потому что дженерики появилсь не сразу и “обратная совместимость” не позволила правильно перепилить типы (пришлось костылить).

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: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
будет 1.10 , 1.11 ...
От этой нумерации давно отошли, теперь java 9, 10, 11

И ломать обратную совместимость никто не будет, в этом просто нет никого смысла

Михаил
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
C 5-6 версии
С 5 если я правильно помню

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

Boris
05.06.2017
14:04:12
Выпилить, наконец, методы и классы, на которых @Deprecated поставили 20 лет назад.
Да, правила выведения деприкешенов должны быть более жёсткие. Типа две версии и к чертям

Андрей
05.06.2017
14:05:15
От этой нумерации давно отошли, теперь java 9, 10, 11
Только если заранить проверку версии, то все по старому https://image.prntscr.com/image/703ad5e6912b4cdf9269cb414d55dd01.png

Quantum Harmonizer
05.06.2017
14:05:34
мягко напрягая компании переходить на новые версии?
Есть ещё причины использовать Java 4..7?

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

Boris
05.06.2017
14:06:13
Есть ещё причины использовать Java 4..7?
Конечно, например в андроиде

Сделали же JEP 277: Enhanced Deprecation Но язык это все равно не исправит.
Нет, но это как мне кажется правильный шаг

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
С 19 — 7, с 25 — 8.
это только часть фишек

это не вся джава 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
Что-то я не пойму, интерфейсы миксинами стали? interface MyInterface { val prop: Int // abstract val propertyWithImplementation: String get() = "foo" fun foo() { print(prop) } } class Child : MyInterface { override val prop: Int = 29 }
ну иммутабельная проперти - просто абстракный геттер, а остальное - как дефолтные методы в 8ой джаве. https://kotlinlang.org/docs/reference/interfaces.html

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
на самом деле смысл файнал методов в интерфейсе небольшой, когда есть экстеншен методы да и просто топлевел функции

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

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

Google
Михаил
05.06.2017
21:58:58
5к :/

кто-нибудь в проде использует, есть камни подводные, кроме превью на которую пофиг

вопрос по анко. как там стиль у вью задать? есть что-нибудь из коробки?

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
кто-нибудь в проде использует, есть камни подводные, кроме превью на которую пофиг
Есть камни, созданные андроидом. Рекомендую посмотреть список issues на гитхабе — ИМХО, основные проблему — у AppBarLayout и у DrawerLayout с fitsSystemWindows.

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

Страница 174 из 982