
Vladimir
12.12.2017
07:02:22
Если у item много полей и ко всем нужно обратиться, можно завернуть этот код в блок with и не писать каждый раз item.

Artur
12.12.2017
07:03:06
т.е. получается передавая в with ссылку на объект, мы как бы говорим что содержимое этого блока будет как эта ссылка

Artem
12.12.2017
07:03:26
Т.е. тебе не надо по 5 раз писать
prop.blabla = 5
prop.albalb = 6
prop.qwer = 7
, Ты просто пишешь
with(prop) {
blabla = 5
albalb = 6
qwer = 7
}

Artur
12.12.2017
07:03:45
ясно, очень круто

Google

Artur
12.12.2017
07:03:52
спасибо за разъяснение

Artem
12.12.2017
07:05:02

Artur
12.12.2017
07:05:27
ага, сейчас понятно всё

Artem
12.12.2017
07:06:06
Есть где-то статья на медиуме хорошая, там парень разъясняет о различии let, run, with, apply, also и т.д.
Я думаю если загуглишь, то найдешь легко

Sereja
12.12.2017
07:06:43
И на сайте котлина есть разъяснения)

Artem
12.12.2017
07:06:55
А, ну или так

Sereja
12.12.2017
07:07:28
И на стакоферфлов полно таких вопросов

Vladimir
12.12.2017
09:08:53
Всем привет, может кто может подсказать как можно реализовать это более в котлин стиле ? https://gist.github.com/anonymous/ea359c9ce73add5843a4f1b823ffe38a

balolam
12.12.2017
09:14:49
1. Избавьтесь от дубликации кода
2. От nullable
(Дубликации в методах, у них отличие лишь в том, под каким ключем данные тянут)
И не стоит пытаться делать в Kotlin стиле, код должен быть просто читабелен. Котлин это инструмент, без фанатизма)

Google

Руслан
12.12.2017
09:21:38
Имхо выкинуть absctract class, использовать interface + class delegation если хочется какое-то стандартное поведение

Vadim
12.12.2017
09:40:13
А как добавить корректно условие чтобы результат сложения был > 0 (не отрицательным)
fun calculateStartAngle(startAngle: Float, sweepAngle: Float): Float =
startAngle + sweepAngle + OFFSET_BETWEEN_SECTORS

Slava
12.12.2017
09:44:40
abs()?

Vladimir
12.12.2017
09:47:29
Спасибо за ответы, подумаю

Vadim
12.12.2017
09:54:20
@gLush не подходит, так как получится что при отрицательных значениях аргумента, он мне сделает число просто положительным.

pplcf
12.12.2017
09:54:39
Math.max
т.е макс

Vadim
12.12.2017
09:58:30
@pplcf ну он будет возвращать наибольшее значение из двух
а если они оба отрицательны?

pplcf
12.12.2017
09:59:09
ну отправь туда результат сложения
и число 1
если тебе нужно быть всегда > 0

Vadim
12.12.2017
10:00:22
@@pplcf спасибо, но похоже больше на костыль)
я ещё подумаю ...)

Slava
12.12.2017
10:09:27
Задача нужна. Что за углы и в чем. Если нужно привести в положительный эквивалентный угол - добавить 360 к отрицательному. Или эквивалент в радианах.

Vadim
12.12.2017
10:28:42
@gLush да я думаю лучше просто добавить условие чтобы если какой то из аргументов отрицательный, то вообще не идти дальше
@gLush хотя тоже пока не айс решение))
@gLush но то что приводить к полоительному их не надо, это факт)

Boris
12.12.2017
14:04:54
а кто знал про такю функцию из стандатной библиотеки, называется listOfNotNull?
хорошо в для котлина уже много подсказок по трансформации, идея мне сама подсказала, что можно без лишних итераций сделать

Михаил
12.12.2017
14:10:35
подсказки ток и спасают, там уже столько экстеншенов наворотили, что их нужно отдельно зубрить)

gxwin
12.12.2017
14:12:55

Google

gxwin
12.12.2017
14:14:01
...и еще напишут статью, что это мировая практика группировать в классы, теперь вот так делайте правильно и прекращайте импортировать со звездочкой :)

Igor
12.12.2017
14:14:59
Сделают окамл-модули
Вот иногда жалко что нельзя делать import внутри object (чем не независимые-модули)

gxwin
12.12.2017
14:21:22
from exfun import listOfNotNull, mapOfNotNull :)

Гадкий
12.12.2017
14:21:29

Руслан
12.12.2017
14:25:31
...и еще напишут статью, что это мировая практика группировать в классы, теперь вот так делайте правильно и прекращайте импортировать со звездочкой :)
Намешал wildcard импорты с импортом статических функций. Наверно хотелось отослать к старым-добрым истинам из джавы, которые якобы в Kotlin не понимают и не помнят, а я вот так умный вижу как все на самом деле? :) Но да ладно.
Проблема как всегда одна - люди не читают доки, и не изучают API.
Вот и получается что экстеншены в проекте - это круто, удобно и юзабельно. А вот экстеншены из либы - нет. А все потому что разработчики не читают доки, не изучают API, а еще экстеншены в autocompete идут после мемберов и поэтому теряются.
Поэтому в bootique-kotlin заменил экстеншены для guice на полноценные обертки, чтобы изначально API был нативный для котлина.

Dibro
12.12.2017
14:26:10
а что будет?

Руслан
12.12.2017
14:26:35
Тебе обязательно помогут в @kotlin_mobile

Гадкий
12.12.2017
14:26:38
а что будет?
нашел решение: http://kotlinlang.org/docs/reference/whatsnew12.html#checking-whether-a-lateinit-var-is-initialized

Igor
12.12.2017
14:26:47

Гадкий
12.12.2017
14:26:52
presenter.isInitialized

Vitalii
12.12.2017
14:26:56

Dibro
12.12.2017
14:27:13
да кстати, причём тут мобайл?

Саша
12.12.2017
14:27:24

Руслан
12.12.2017
14:28:56

Гадкий
12.12.2017
14:29:58
кейс же котлиновский

Руслан
12.12.2017
14:29:59

Гадкий
12.12.2017
14:31:07
ладно, такой вопрос. Можно ли lateinit "обнулить" после инициализации?

gxwin
12.12.2017
14:31:30
bootique-kotlin - что это и зачем оно тут?
Я вообще про этот адок
import io.ktor.application.*
import io.ktor.features.*
import io.ktor.http.*
import io.ktor.response.*
import io.ktor.routing.*
import io.ktor.server.engine.*
import io.ktor.server.jetty.*

Google

Руслан
12.12.2017
14:31:35

Саша
12.12.2017
14:33:20
Ruslan, откуда у вас такая топовая футболка? ??

gxwin
12.12.2017
14:33:22
Это прям в сорцах ktor, это не я так пишу)
может ошибаюсь

Михаил
12.12.2017
14:34:40

gxwin
12.12.2017
14:34:45
надеюсь не за так столько эмоций

Руслан
12.12.2017
14:35:05

Гадкий
12.12.2017
14:36:03

Admin
ERROR: S client not available

Osip
12.12.2017
14:40:07
Да

Alexander
12.12.2017
15:22:32

Гадкий
12.12.2017
15:23:12

Alexander
12.12.2017
15:24:33
Если про property говорить: https://github.com/Kotlin/KEEP/pull/73/files

Гадкий
12.12.2017
15:26:02
неплохо

Arthur
12.12.2017
15:45:40
Всем привет! Я тут недавно заинтересовался Котлином и у меня возник вопрос: насколько быстро можно поднять простой сайтик на котлине? И если писать веб приложение и мобильный клиент (или мобильное приложение с таким же функционалом, но работающим локально, без подключения к внешним сервисам) - будет ли код похож между веб версией и мобильной? Если да, то на сколько?

Даниил
12.12.2017
15:47:59
веб-версия - это браузерная часть на котлине что ли?

Dmitry
12.12.2017
15:51:11

Arthur
12.12.2017
15:53:54

Google

Arthur
12.12.2017
15:57:21
веб-версия - это браузерная часть на котлине что ли?
Ага, та часть котрую пишут на php/nodejs/ruby/other)) вообще в чем преимущество java/kotlin’а перед вышу упомянутым как то не могу вычислить...
Видел как хабре парень приводил пример как быстро что то собрать на spring boot но я его подвиг повторить не смог ибо крашнулась java sdk

Даниил
12.12.2017
15:57:48
на php/nodejs/ruby не пишут браузерную часть

Andrei
12.12.2017
15:58:00
angular

Даниил
12.12.2017
15:58:01
на этих языках пишут серверную часть

Andrei
12.12.2017
15:58:03
и тд

Даниил
12.12.2017
15:58:13
а серверу вообще всё равно что там на клиенте

Andrei
12.12.2017
15:58:18
угу

Даниил
12.12.2017
15:58:21
отдаёшь JSON и всё

Anton
12.12.2017
15:59:19
да спринг бут за пару минут разворачивается
спаркджава за минуту

Arthur
12.12.2017
15:59:50

Andrei
12.12.2017
16:01:18
для бек-енда на котлине есть https://github.com/ktorio/ktor

gxwin
12.12.2017
16:01:23

Andrei
12.12.2017
16:01:57
и еще Spring 5 поддерживает Kotlin

Arthur
12.12.2017
16:04:09

gxwin
12.12.2017
16:06:06

Vadim
12.12.2017
16:53:05
Внимание, сейчас будет вопрос - "Так себе"!)
Можно ли написать условие boolean так чтобы оно мол типо проверяло если это последний элемент в списке?)
что то типо if(list.last()) something()

Alexander
12.12.2017
17:02:24

Vadim
12.12.2017
17:05:10
Alexander а сам element объявить выше? типо
var element = ???

Alexander
12.12.2017
17:07:40
Чего добиться пытаешься? list.last() тебе даст последний элемент

Vadim
12.12.2017
17:17:53
Alexander это да, но сам
element
мне же надо правильно проинициализировать? учитываю что у меня
private val list: List<Phones>