@kotlin_lang

Страница 355 из 982
Alexander
03.10.2017
16:49:12
новое писать

Anton
03.10.2017
16:49:14
Ну так вы что весь проект правили

Sergey
03.10.2017
16:49:48
около половины

остальную половину по ходу дела перевели

Google
Alexander
03.10.2017
16:50:10
зачем рефакторить то что уже работает?
у меня в проекте до сих пор код на UI треде встречается

Anton
03.10.2017
16:50:14
Насколько большой проект

Alexander
03.10.2017
16:50:18
запросы в сеть

Vladimir
03.10.2017
16:51:24
Кстати, может кто посоветует годноты для самообучения?

Sergey
03.10.2017
16:52:20
доки и kotlin koans

https://www.codingame.com попрактиковаться

Alexander
03.10.2017
16:55:27
А что используете плагин для AS 2 или AS 3.0?

Igor
03.10.2017
17:06:46
правишь какой-то код, и сразу же его конвертишь. на конвертацию времени уходит сколько. 10 минут?
Потом в сконвертированном всплывает !! в зависимостях, ты их рефакторишь и их зависимости и их и … (… и вот в ночь с пятницы на понедельник - ты перепилил весь проект на Kotlin)

Quantum Harmonizer
03.10.2017
17:08:32
Alexander
03.10.2017
17:08:56
IntelliJ IDEA, например
С плагином для Android?

Google
Quantum Harmonizer
03.10.2017
17:09:50
С плагином для Android?
Для Android-разработки — с плагином для Android.

Igor
03.10.2017
17:36:27
Какую задачу они решают?
Expression Problem Позволяют расширять классы “интерфейсами” со стороны, даже sealed (в Котлин особенно актуально)

Igor
03.10.2017
17:48:53
Типа как экстеншн классы?
А откуда эти “экстеншен классы”?

Boris
03.10.2017
17:49:20
Ну это я по аналогии с экстеншн методами

Igor
03.10.2017
18:02:01
дак есть же делегирование
Делегировать ты можешь только в класс/объект который наследует тот же интерефейс. А если у тебя класс чужой либы или вообще String?

Dibro
03.10.2017
18:06:41
Делегировать ты можешь только в класс/объект который наследует тот же интерефейс. А если у тебя класс чужой либы или вообще String?
окей, можно вообще без делегатов. просто создавать класс, который будет реализовывать интерфейс чужой либы и принимать в конструктор String и как-то его в этих методах обрабатывать

Boris
03.10.2017
18:08:45
Прочитал, интересно. Как это на жвм ляжет непонятно

Dibro
03.10.2017
18:09:16
Это оно и будет, только чуть меньше бойлепрейта, а больше имплисит заворачиваний.
ну какой-то сомнительный сахар... не так уж и тяжело писать foo(Bar("123")), вместо foo("123"), где Bar - Type class, как я понял

Igor
03.10.2017
18:10:31
Возможно там будут оптимизации на уровне байткода, что бы было меньше алокация.

? animufag ?
03.10.2017
18:14:55
Какую задачу они решают?
ну типа сейчас есть дофига мапов и ты не можешь сделать функцию над тем что можно мапать. тебе придётся отдельно для листа, каждого массива и тд

если ты сделаешь интерфейс с мапом, то тебе придётся делать мап в какой-нибудь конкретный контейнер, например список

думаю на уровне байткода всё будет кривокостыльно

Dibro
03.10.2017
18:18:47
возможно в пределах котлина какую-нибудь оптимизацию и сделают, но с интеропом только через обёртки

Диёр
03.10.2017
18:23:15
У меня в тг десктопе в колонке с чатами написано что последнее сообщение в этом чате это "цазимитпо ьдубин-юукак анилток халедерп в онжомзов :Dibro..."

WTF?

Google
Mi
03.10.2017
18:23:51
Балуются со спецсимволаии

? animufag ?
03.10.2017
18:23:55
чел выделился своим ником

с тайпклассами можно будет отказаться от наследования можно будет определить интерфейс и сделать его имплементацию для внешних классов ещё сложно представить как оно будет с джавой интеропить наверное интерфейс и обёртки генерить

Boris
03.10.2017
20:02:54
Я так думаю, что интерфейсы тут он помогут. Только инвокдинамик, только хардкор

Потому что интерфейсы пришлось бы инмплементировать в классах, а это просто невозможно

Юсуф
03.10.2017
21:03:00
в RxJava в метод map можно передавать класс mapper в виде Observable.map(new CustomMapper()), как то же самое проделать в котлине?

Alexey
03.10.2017
22:07:04
Code -> Convert Java file to Kotlin file
наоборот не хватает((

на работе пишу проект на джаве все еще. А домашний проект на котлине и иногда хочется копировать из домашнего проекта в рабочий куски кода, но Kotlin to Java нет ((

Руслан
03.10.2017
22:18:09
show kotlin bytecode -> decompile to java иногда(очень редко) это будет работать :)
К сожалению от stream().somethingUsefulHere().collect(Collectors.join(" ")) не спасает

И потом в любом случае простыни на джаве читать

Kirill
03.10.2017
22:20:48
ну это да :(

Vic
03.10.2017
23:05:44
после котлина (и скалы) читать, а тем более писать на жабе просто тошно. как верно заметили в разборе полетов, когда к ним приходил роман, это должен быть главный страх менеджеров - дай девелоперу кодить на котлине, его потом на жаве не заставишь

Konstantine
03.10.2017
23:25:53
Какие привереды:)

Igor
04.10.2017
05:45:10
И потом в любом случае простыни на джаве читать
“Kotlin для совсем бедных” ? https://medium.com/@andrey_cheptsov/making-java-code-easier-to-read-without-changing-it-adeebd5c36de https://plugins.jetbrains.com/plugin/9320-advanced-java-folding

Sergey
04.10.2017
06:25:04
и lombock еще)

Mi
04.10.2017
06:26:10
Пользовался как-то этим плагином

Он скорее раздражает

Слишком в лоб работает

Google
Mi
04.10.2017
06:26:51
И скрывает иногда даже полезную информацию

Igor
04.10.2017
07:25:07
Всем трям, интересную странность обнаружил, у меня Очень (с заглавной буквы) много объектов в тесте внутри setOf. И котлин посылает меня, при попытке запустить тест (экранных строк - примерно 150-200, в каждой от 20 элементов). Мне Очень принципиально впихнуть все эти элементы в set, но вроде у компилятора на этот счет другие планы. Можно ли как-то обойти такой косяк? Трейс сейчас скину



Rikland
04.10.2017
07:28:19
Ох. Хорошо рвануло

Igor
04.10.2017
07:29:23
Да. Что ниже не знаю - даже при 16ГБ оперативки, скроллится оно отказывается

Badya
04.10.2017
07:29:51
Лог можно вытащить из системы

Пробовал компилеру мема подкинуть?

Igor
04.10.2017
07:30:39
Пробовал компилеру мема подкинуть?
Не, у него вроде и так 4Гб стоит, и я сомневаюсь, что ему мало.

Badya
04.10.2017
07:31:12
Ну нужно логи выуживать

Rikland
04.10.2017
07:32:33
Ну нужно логи выуживать
Да ладно. У меня gwt компилятор и 6гигов не гнушался кушать (:

Igor
04.10.2017
07:32:40
Ну нужно логи выуживать
Не подскажешь, где найти?

IntelliJ

Badya
04.10.2017
07:33:26
Я бы начал с help -> show log или чето вроде

Igor
04.10.2017
07:36:50
Можно выложить в /resources/ и загужать в рантайм ? (пожалей idea/компилятор)
Да, пожалуй, вариант. Сейчас попробую, если не поможет - попробую, как Badya посоветовал, глянуть в логи.

Badya
04.10.2017
07:38:04
Логи в любом случае стоит покурить - может завести багу в JB

Igor
04.10.2017
07:40:19
Логи в любом случае стоит покурить - может завести багу в JB
Постараюсь, но если проблема решится, то сделаю это на досуге, ибо времени нема.

Да, спасло ^_^

Мало ли, может сегодня кто-то зайдет, кто сможет ответить... Есть задача - подключить в scala проект kotlin (достаточно - в виде модуля), либо наоборот - в kotlin проект модуль на scala. Система сборки - gradle. Может быть кто-то преуспел в подобном, без создания отдельно одного приложения и второго, и описания их коммуникации локальной?

Igor
04.10.2017
08:46:50
scala + gradle - месье знает толк

Google
Igor
04.10.2017
08:49:39
Boris
04.10.2017
09:14:09
Это не такая проблема если ты их друг из друга не собираешься использовать

Igor
04.10.2017
09:24:39
О, на оф. issue tracker-е kotlin-а написали, что можно из scala котел вызывать. Как попробую - напишу

Dmitry
04.10.2017
09:35:14
как-то интегрировался со скалой из котлина. это какая-то боль. особенно, там, где object-ы, имплиситы, дженерики

какие-то куски пришлось писать на java

Igor
04.10.2017
09:36:52
как-то интегрировался со скалой из котлина. это какая-то боль. особенно, там, где object-ы, имплиситы, дженерики
К счастью, единственное, что мне придется разрешить из подобного рода конфликтов - коллекции и rx. Если scala проглотит rxKotlin - я буду очень и очень доволен.

Dmitry
04.10.2017
09:40:58
с коллекциями, например, выяснилось, что нельзя просто так взять мапу из java и сконвертить ее в скаловскую immutable map на котлине

@SuppressWarnings("unchecked") public static <K, V> scala.collection.immutable.Map<K, V> toScalaMap(Map<K, V> map) { Iterator<Tuple2> iterator = map.entrySet().stream() .map(entry -> new Tuple2(entry.getKey(), entry.getValue())) .iterator(); Seq seq = JavaConverters.asScalaIteratorConverter(iterator) .asScala() .toSeq(); return (scala.collection.immutable.Map<K, V>) Predef$.MODULE$.Map().apply(seq); }

Boris
04.10.2017
09:42:43
Сурово

Надо просто конветр для итератора сделать, потом просто в сиквенсы оборачивать

Конвертер я имею ввиду адаптер

Возможно у склы есть свой

Адаптер

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