
Глеб
01.06.2017
10:55:03
прибавляю к двум часам случайное количество (от 0 до 60) минут

Nikita
01.06.2017
10:55:51
хм

Alexander
01.06.2017
10:57:12

Vlad
01.06.2017
10:58:01
Да я в курсе)

Google

Nikita
01.06.2017
11:00:16
прибавляю к двум часам случайное количество (от 0 до 60) минут
я написал сво фигню на java.
long result = TimeUnit.HOURS.toMillis(2) + ThreadLocalRandom.current().nextLong(TimeUnit.HOURS.toMillis(1));
, но что то мне кажется что твое решение на котлине как ни крути короче. Правда читаемей ли? (да, я на котлине не пишу и это кажется мне немного странным)
хотя да, читаемей

Umren
01.06.2017
11:01:21

Gregory
01.06.2017
11:02:56
10% времени мы пишем код, а 90% времени его сопровождаем.

Nikita
01.06.2017
11:03:46

Gregory
01.06.2017
11:04:00
Если потратить 0,1% от общего времени на читаемость (== понимаемость), то потом это сэкономит десятки процентов на поддержке.
Читаемость != количество строк или кода меньше.

Глеб
01.06.2017
11:09:28
Gregory я не совсем понял, почему лажа. Ну и что, что в Long может быть все, что угодно? Мы же не собираемся переводить в милисекунды количество рыбок в аквариуме.

Igor
01.06.2017
11:10:52

Глеб
01.06.2017
11:11:15
@K_Gregory то есть если я переименую hours в hoursToMills, это не будет лажой?

Alexander
01.06.2017
11:11:34
Это звучит примерно как "а давайте String у нас будет уметь делать HTTP запросы по URL"

Михаил
01.06.2017
11:11:57

Google

Михаил
01.06.2017
11:12:17

Alexander
01.06.2017
11:13:40
и еще добавить методы для перевода миль в километры и фунтов в килограммы
и получится большая помойка

Nikita
01.06.2017
11:14:34
я так и не понял, зачем делать эти дополнительные утилитарные классы если есть уже готовые?

Sergey
01.06.2017
11:17:55

Глеб
01.06.2017
11:17:56
@deychai хм, звучит разумно. Тогда получается, что лучше написать несколько классов и переопределить у них plus, чем пользоваться extension-методами таким обазом.

Nikita
01.06.2017
11:19:10
Да

Igor
01.06.2017
11:19:13

Sergey
01.06.2017
11:19:24
Где это?
https://github.com/kittinunf/Fuel

Igor
01.06.2017
11:19:58

Sergey
01.06.2017
11:20:12

Глеб
01.06.2017
11:21:28
Nikita да я просто хочу, чтобы время складывалось красиво и все хорошо читалось. Котлин позволяет это делать, а мне хочется этим воспользоваться

Gregory
01.06.2017
11:21:55
Extension-методы предполагают, что их можно использовать с любым экземпляром класса.
В моей картине мира extension-методы - это компромисс между SRP, OCP и удобством написания кода.

Nikita
01.06.2017
11:23:44
ну эт имхо конечно

Gregory
01.06.2017
11:25:14

Михаил
01.06.2017
11:49:25

Михаил
01.06.2017
13:58:37
А мне показалось или в котлине раньше можно было интерфейсы с дефолтными реализациями?
Именно на базе джавы 7

Руслан
01.06.2017
14:00:43
Можно и на базе джавы 6

Google

Aleksandr
01.06.2017
14:01:17

Михаил
01.06.2017
14:01:37
Мне андроид студия говорит чтоб я пиписю целовал...

Руслан
01.06.2017
14:01:50

Михаил
01.06.2017
14:01:55

Руслан
01.06.2017
14:02:48
https://youtu.be/yYG12qaxWO4?t=17m36s вот тут в видео более точно описано
@Mihail_t так что у тебя за ошибка
Кстати в слаке JB ввели Code of Conduct https://github.com/JetBrains/kotlin-web-site/blob/master/pages/community/slackccugl.md
Думаю нам стоит перевести и тоже использовать

Aliaksei
01.06.2017
14:11:35
и сразу станет СКУШНА

Umren
01.06.2017
14:27:36
CoC обычно используется в офф сообществах или рассылке

Руслан
01.06.2017
14:29:09
Так же как и слаку - чат растет, чтобы потом никто не обижался и понимал как себя вести нужно.

Umren
01.06.2017
14:31:30
Правила это хорошо когда они адекватные надо почитать будет

Igor
01.06.2017
14:31:40

Руслан
01.06.2017
14:32:12
так есть же kotlinlang.ru
Или это не то?

Igor
01.06.2017
14:32:45
Там еще много “Актуальные задачи”, можешь к пример FAQ перевести

Руслан
01.06.2017
14:33:01
Я скорее доделаю kotlin.link
там куча чего нужно пофиксить и сделать

Google

Umren
01.06.2017
14:50:13
Плохо что нету нумерации в правилах

Admin
ERROR: S client not available

Михаил
01.06.2017
19:53:28
вот такое
студия решила что котлин не поддерживает дефолт методы

Nikita
01.06.2017
20:05:30
Мда
Ето баг
А не
Этож интерфейс
А не баг

Lost
01.06.2017
20:07:15
а давно в интерфейсах дефолтные методы?
нах так жить посоны

Михаил
01.06.2017
20:07:35
В котлине еще с первой версии
Про версии до первой не могу сказать

Lost
01.06.2017
20:08:27
и в чем прикол
только без того что это "УДОБНО"

Михаил
01.06.2017
20:09:43
Мне надо обобщить объекты но не у каждого надо недефолтное поведение
Ну вообще мне сильно не жмет. Мне больше интересует почему это в принципе не работает, хотя должно

Андрей
01.06.2017
20:12:58
Если компилится, то пусть ругается. Всеравно ты в интерфейс часто лазить не будешь.
А ругается, скорее всего, линт. И у него есть свои аннотации, которые позволяют засупресить проверку.
@SuppressLint("NewApi")

Konstantin
01.06.2017
20:17:51

Google


Igor
01.06.2017
20:51:44
Написал небольшой скрипт на Kotlin, который считает статистику чата (по combot.org)
Исходники (MIT) https://gist.github.com/anonymous/2153dc64b3c6b527853a7e2db2633f08
Результат (данные за последний месяц, “юзер” это те кто делает в среднем хотя бы 1 сообщение в день):
57% юзеров пишут не более 1 сообщений в день
77% юзеров пишут не более 2 сообщений в день
80% юзеров пишут не более 5 сообщений в день
83% юзеров пишут не более 7 сообщений в день
87% юзеров пишут не более 8 сообщений в день
90% юзеров пишут не более 9 сообщений в день
93% юзеров пишут не более 11 сообщений в день
97% юзеров пишут не более 12 сообщений в день
100% юзеров пишут не более 17 сообщений в день
Список почетных флудеров (пишут больше чем 90% других юзеров):
Флудер #1: "Umren" (17 сообщений в день)
Флудер #2: "Ruslan Ibragimov" (12 сообщений в день)
Флудер #3: "Михаил" (11 сообщений в день)
P.S.
Кстати, я так же написал бота, который пересылает сообщений из kotlinlang.slack.com прям в telegram @SlackToTelegramBot


Umren
01.06.2017
20:52:39
?

Kirill
01.06.2017
20:53:09


Konstantine
01.06.2017
23:24:45
Ребят, можно ли при создании объекта как-нибудь у него переопределить какие-то функции?
Что-то вроде
val a = A() {
override fun lala() {}
}

Alexey
01.06.2017
23:26:47
можно в конструктор объекта передавать лямбду, которую потом вызывать в каком-либо методе, получится примерно то, что надо

Konstantine
01.06.2017
23:28:06
Тут речь об классе из android api. В нем не смогу вызвать так что-то
Ступил вообще
По итогу просто сделал так
val a = object : A() {}

Alexey
01.06.2017
23:29:16
минималистичненько