@kotlin_lang

Страница 115 из 982
Ilya
27.04.2017
06:20:09
Всем привет! Решил почитать про Котлин. Насколько я понимаю наиболее официальная книга - Kotlin in Action. Реально ли ее найти на просторах интернета или может кто-то поделиться может?

Google
Ilya
27.04.2017
06:25:36
нашел, но это не совсем то что я искал http://joxi.ru/LmGeQePieKMW0A

Igor
27.04.2017
06:27:28
нашел, но это не совсем то что я искал http://joxi.ru/LmGeQePieKMW0A
Я не об этом, там был PDF на английском

Ilya
27.04.2017
06:28:03
Я не об этом, там был PDF на английском
ну китаец и гитхаб. все как ты говорил)

Igor
27.04.2017
06:31:06
ну китаец и гитхаб. все как ты говорил)
Блин, не могу найти репозиторий, правообладетели наверное добрались ?

Ilya
27.04.2017
06:33:12
Igor
27.04.2017
06:33:40
там, наверное, то же самое. Стоящая хоть книга?
Нашел репозиторий (там dpf/epub/docx)! Ищи по топикам kotlin-in-action + ebooks (топики это типа теги). Я бы сказал, что это просто копипаста документации, только более развернутая и с комментариями. Я учил по видео с Бреславом на youtube и документации на сайте. Можно еще kotlin-koans пройти.

Igor
27.04.2017
06:41:58
Слышал, что уже есть такие расширения, просто, я к чему спросил, мне интересно писать на котлине, но я не использовал либгдх Не разу
Имхо, писать игру libgdx на Kotlin вместо Java - тоже самое что писать обычные приложения на Kotlin вместо Java. Ничего координально друго там нет, а учиться можно по книгами/статья/видео про Java.

Ilya
27.04.2017
06:46:55
а может кто-нибудь в кратце рассказать про Котлин. Это просто набор синтаксического сахара над Java или реально мощный язык. Если второе, что что в нем самое выдающееся?

Dmitry
27.04.2017
06:49:45
а может кто-нибудь в кратце рассказать про Котлин. Это просто набор синтаксического сахара над Java или реально мощный язык. Если второе, что что в нем самое выдающееся?
какой то вопрос холиварный, как будто мы тут на защите доклада. http://try.kotlinlang.org здесь можно попробовать котлин онлайн, и тут же основные его фичи в преимуществе над джавой

там ответы на Ваши вопросы

Котлин это отдельный язык, а не синтаксический сахар. Если я правильно первый вопрос понял

Google
Ilya
27.04.2017
06:50:51
я пробовал вчера. Пока заметил только различные синтаксические вкусности. Поэтому интересуюсь.

Я знаю, что отдельный язык, но хочу понять чем он лучше Java

Есть там что-то такое чего нет в Java

Dmitry
27.04.2017
06:53:44
смотря что Вас интересует. Не спец по быстродействию и производительности, лично для меня котлин удобен лаконичностью, ребятам из jetBrains удалось разгрузить конструкции джава и это очень удобно на мой взгляд. И некоторые вещи выглядят намного логичнее после этого.

Igor
27.04.2017
06:55:06
а может кто-нибудь в кратце рассказать про Котлин. Это просто набор синтаксического сахара над Java или реально мощный язык. Если второе, что что в нем самое выдающееся?
Чувак, не надо таких вопросов (троли могу стригирить). Посмотри видосики, там все объясняют (мои любимые): - Функциональный Kotlin: https://youtu.be/9x6utkLDBs8 (на Java ты такое не сможешь, только на Scala) - Android и Kotlin: https://youtu.be/VU_L2_XGQ9s - Просто про Kotlin: https://youtu.be/wjkaPXT_vY4 Еще куча видео на русском: https://www.youtube.com/playlist?list=PLVe-2wcL84b8pj7VOoa-6L9Q0sDjibdoF

Dmitry
27.04.2017
06:55:09
@iksudnik буквально вчера был неплохой митап, там есть про производительность котлина и про его фишки https://www.youtube.com/watch?v=kGUBasuFf5k&feature=youtu.be

Dmitry
27.04.2017
07:00:07
ну я кстати видел пожелания к знанию котлин. Например, в вакансиях Австралии. %)

на линкедине тоже бывает проскакивает

? animufag ?
27.04.2017
07:40:44
Для андроида gc очень даже надо хотя бы примерно знать чтобы не допускать утечек памяти.
ну когда то я таких фразочек наслушался и думал что в андроиде ну СОВСЕМ другой гц

не нужно из гц делать что-то магическое. если ты можешь построить своё предложение без гц - строй без него

вот вчера чел говорил что в котлине есть проблемные места в плане гц

оказалось что речь про аллокации

Igor
27.04.2017
07:42:33
Кто-нибудь писал библиотеки на Kotlin, что-бы через maven распростронять? Говорят там зависимость на stdlib можно как-то обрезать через progurad, кто-нибудь пробовал?

? animufag ?
27.04.2017
07:44:17
вот ты сейчас говоришь про особенности asynctask и rx либ. можно же просто сказать что они захватывают ссылки и живут дольше чем надо. а не то что нужно знать ГЦ а не то (Господи помилуй) Утечки Памяти!!

Quantum Harmonizer
27.04.2017
07:54:24
Кто libgdx использует с kotlin
Если не особо запариваться, то на Java всё же привычнее. В частности, zero-allocation-цикл с удалением на ней написать проще: for (int i = 0, size = collection.size(); i < size; i++) { if (iWantToDeleteItem) { collection.remove(i) size--; i--; } } Если заморочиться, можно (но немного костыльно) написать extension, который сделает то же самое на Котлине. Мне заморачиваться было некогда.)

Кто-нибудь писал библиотеки на Kotlin, что-бы через maven распростронять? Говорят там зависимость на stdlib можно как-то обрезать через progurad, кто-нибудь пробовал?
Немного не по теме. Пишу под Android на Kotlin. Кроме того, что stdlib не огромна (всего 5к методов), она отличнейне вырезается, и остаётся только то, что я использую — методов сто-двести.

Google
Quantum Harmonizer
27.04.2017
08:01:10
там же ошибка будет при удалении вроде, не? нельзя одновременно ходить по коллекции и удалять из нее же, так только через итератор можно
Нельзя одновременно идти по коллекции итератором и удалять (изменять любым образом) не итератором.

Pavel Shackih
27.04.2017
08:05:18
точно)

Quantum Harmonizer
27.04.2017
08:16:34
inline fun <T> MutableList<T>.remove(condition: (T)->Boolean): MutableList<T> { var i = 0 var size = size while (i < size) { if (condition(get(i))) { removeAt(i) size-- i-- } i++ } return this }
И при этом выполнить какой-то код для каждого пройденного элемента (draw).

Igor
27.04.2017
08:20:23
inline fun <T> MutableList<T>.remove(condition: (T)->Boolean): MutableList<T> { var i = 0 var size = size while (i < size) { if (condition(get(i))) { removeAt(i) size-- i-- } i++ } return this }
Я не понимаю, зачем вы юзаете две переменных i и size, почему нельзя просто уменьшать с size-1 до 0? https://i.gyazo.com/ce14df380cc0160cb9253566e4793e83.png

Boris
27.04.2017
08:22:38
я просто один в один портировал джава-код

так-то есть много спсобов это сделать

Igor
27.04.2017
08:34:04
Смотрите какая фича https://youtrack.jetbrains.com/issue/KT-4895 Если кто думает что пригодится - плюсаните плиз (может сделают)

Михаил
27.04.2017
08:36:13
а есть там предложения сделать, чтоб варарги не надо было складывать обязательно в эррей?

Михаил
27.04.2017
08:36:58
ну чтоб если у тебя один параметр варарга, то не запихивать его в массив

как в джаве

Михаил
27.04.2017
08:38:59
допустим метод на джаве : void doSomething(String... strings) {}в котлине придется вызывать как doSomething(arrayOf(""))

Михаил
27.04.2017
08:39:16
в джаве можно не заворачивать в массив

Quantum Harmonizer
27.04.2017
08:39:30
arrayOf — это такой же vararg метод

fun x(vararg z: String) { } fun z() { x("") }

Михаил
27.04.2017
08:40:29
а если вызов джава кода?

Google
Quantum Harmonizer
27.04.2017
08:41:13
не знаю, в моей жизни варарги настолько редки, что они ещё не столкнулись с интеропом.)

? animufag ?
27.04.2017
08:41:16
Смотрите какая фича https://youtrack.jetbrains.com/issue/KT-4895 Если кто думает что пригодится - плюсаните плиз (может сделают)
некрасиво смотрится со стейтментом. хотя в for(item in items) создаётся же локальная переменная. думаю неплохо было бы in обобщить

Михаил
27.04.2017
08:41:43
в андроиде это аннотации дагера 2

Quantum Harmonizer
27.04.2017
08:42:38
кейс это аннотации в спринге
А, в аннотациях параметры именованные, а с ними варарги не сочетаются. Насколько я знаю, специально для этого случая (!) сделали литерал [], кто-то показывал коммит.

Admin
ERROR: S client not available

Михаил
27.04.2017
08:43:15
то есть щас можно не заворачивать?

Quantum Harmonizer
27.04.2017
08:43:19
сделали?
неверное, не в релизных сборках

Михаил
27.04.2017
08:43:32
было бы круто

мелочь а приятно

слышал что есть у котлиновского компиляторв настроечка, чтоб не было рантайм проверок на null у nonnull типов

никто не в курсе как подрубить?

Диёр
27.04.2017
08:50:21
А в чём смысл?

Михаил
27.04.2017
08:50:56
и будет ли это работать как я думаю? в компайл тайме он мне скажет косяки, но в рантайме упадет с npe там где должно

Quantum Harmonizer
27.04.2017
08:51:09
никто не в курсе как подрубить?
kotlinOptions { freeCompilerArgs = ['-Xno-param-assertions', '-Xno-call-assertions'] } в buildTypes.release, например

Марат
27.04.2017
09:44:00
Кто то сталкивался с проблемой? execution failed for task ':app:compileDebugKotlinAfterJava

Quantum Harmonizer
27.04.2017
09:46:20
возможно, ошибка в коде

Марат
27.04.2017
09:47:18
возможно, ошибка в коде
а как узнать где?)

а это не может быть связано с апдейтом плагина котлин?

Google
Quantum Harmonizer
27.04.2017
09:48:17
а как узнать где?)
можно собрать руками из терминала ./gradlew :app:assembleDebug

У меня, кстати, тоже только что компиляция поломалась. Из-за юникодных emoji в коде :)

Igor
27.04.2017
10:30:57
Питерцы, добавляйтесь в группу по митапам в СПб -> @gdgspb

Подоспели видео и слайды с Big Android Battle! Слайды: https://speakerdeck.com/gdgspb/java-alternatives Видео­: Groovy: https://www.youtube.com/watch?v=5KGBWjeaVfc Kotlin: https://www.youtube.com/watch?v=KrEH_51c-Co Scala: https://www.youtube.com/watch?v=NJ3dOkWaFBI

Alex
27.04.2017
10:42:09
Roman
27.04.2017
14:53:46
народ, что думаете про https://youtrack.jetbrains.com/issue/KT-17634

?

кому интересно, проголосуйте пожалуйста. ну и любые правки/замечания приветствуются

кроме того Роман Елизаров просит накидать реальных примеров кода туда. если у кого-то есть такие, напишите плз в комментах

Igor
27.04.2017
15:03:53
?
Это же что-то из Swift/C# 7.0 - оно там решает туже проблему что и наши смарткасты. Если делать тоже в Kotlin, не кажется ли что это будет дублированием, того что уже есть?

Quantum Harmonizer
27.04.2017
15:04:21
Не могут поля смарткаститься, только локальные переменные.

Roman
27.04.2017
15:04:35
и да, это как раз про случаи, когда смарт касты не работают

Igor
27.04.2017
15:05:38
Не могут поля смарткаститься, только локальные переменные.
Ну как бы уже сделали (да и final val вроде могу) и теперь только ради одних полей впиндюривать изменение языка, которое частично продублирует уже имеюущиеся - ну не знаю.

Roman
27.04.2017
15:06:24
ммм... https://github.com/search?l=Swift&q=%22if+%28let+%22&type=Code&utf8=%E2%9C%93 ?)
да =)) но я думаю имеется в виду реальный java/kotlin код из продакшена где это понадобилось. типа доказательство наличия большого числа реальных кейсов и необходимости что-то добавлять в язык

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