
guga
19.01.2017
13:33:22
но c# харош
куда лучше жабки

Митко Соловец?
19.01.2017
13:33:33

guga
19.01.2017
13:33:34
и почти без ёё косяков

Google

Daniil
19.01.2017
13:33:39

guga
19.01.2017
13:34:11

Руслан
19.01.2017
13:34:19

guga
19.01.2017
13:34:37
сет тоже так себе идея, а если мне нужен get(int index)?

Руслан
19.01.2017
13:34:39
просто напуствие парню, который через пару часов столкнется с этой проблемой

Daniil
19.01.2017
13:35:29
toArray()
)))

guga
19.01.2017
13:36:09
просто это то, с чем приходится жить
я уже привык

Daniil
19.01.2017
13:36:27
на самом деле удваиваю, удивлен что нету итераторов у мапы, или что у вас там модно вместо итераторов
//только начинаю писать на жабе

Митко Соловец?
19.01.2017
13:38:34

Daniil
19.01.2017
13:38:55
у меня все голова болит от очень простой но дико напрягающей меня вещи.
Ты никак не можешь гарантировать что передавая объект в метод, он не будет изменен.
Надо или пилить 2 интерфейса, изменяемый и неизменяемый
или делать как сделано в емнип в листе (возврат немодифицируемого объекта, который имеет доступ к полям дочернего)
или делать класс immutable
Задачка вроде простая, а способов решения и боли - хватает)

Google

Руслан
19.01.2017
13:39:35

Daniil
19.01.2017
13:41:14

Igrek
19.01.2017
13:41:30
давайте сюда бота сделаем, который по упоминанию слов бутик, каен и котлин будет на 10 минут банить?)

Daniil
19.01.2017
13:41:37
ахахах

Руслан
19.01.2017
13:41:49
там коллекции нормальные, val'ы везде
дата классы

Daniil
19.01.2017
13:42:17
что есть "val'ы везде"?

Митко Соловец?
19.01.2017
13:43:13
причем предлагаю в качестве основы взять бота Руслана

Руслан
19.01.2017
13:43:45
final Kokoko<Koko> kokoko = new Kokoko<>();
vs
val kokoko = Kokoko<Koko>()

Daniil
19.01.2017
13:44:17
а типо как auto в плюсах
прикольно, удобная штука
а как оно поймет final поле или нет?
или если используется val то всегда final?

Руслан
19.01.2017
13:44:41
val - это и есть final

Daniil
19.01.2017
13:44:44
окей

Руслан
19.01.2017
13:44:51
var - если не файнал

Митко Соловец?
19.01.2017
13:44:56
в джаве будет final val
эпическая иммутабельность

Alexander
19.01.2017
13:45:07
а если хочется не файнал, но не хочется писать партянку слева?

Google

Igrek
19.01.2017
13:45:28

Руслан
19.01.2017
13:45:29
var kokoko = Kokoko<Koko>()

guga
19.01.2017
13:45:30
@matrixd Не слушай @HeapyHop пробуй сразу скалу

Руслан
19.01.2017
13:45:33
пожалуйста

Daniil
19.01.2017
13:45:33
а есть штука типо
kokomodifier someVar = new KokokoClass<Kokoko>();
someVar = new KokokoClass<Kokoko>();
?
а
прикольно

guga
19.01.2017
13:45:59
а то полумеры какие-то

Митко Соловец?
19.01.2017
13:47:10
интересно а в бутике на котлине можно писать?
и в каене?

guga
19.01.2017
13:47:24

Митко Соловец?
19.01.2017
13:47:28
ну так сказать, убойная связка чтобы была

guga
19.01.2017
13:47:34
второй вопрос, нужно ли это

Митко Соловец?
19.01.2017
13:47:41

Руслан
19.01.2017
13:48:01
ну и классы immiutable вот так можно писать:
class Immutable(val koko1: Kokoko1, val koko2: Kokoko2)
у тебя тут сразу геттер-сеттер

guga
19.01.2017
13:48:16
ну там уже есть костыли в виде open как плугина для компилятора, верное @HeapyHop?

Руслан
19.01.2017
13:48:19
все как в скале в общем

Alexander
19.01.2017
13:48:43

Google

Daniil
19.01.2017
13:48:54
уау
// Java:
class PrintOptions {
public static void main(String args[]) {
System.out.println("Выбраны опции:");
for (String arg: args) if (arg.startsWith("-")) System.out.println(" " + arg.substring(1));
}
}
// Scala:
object PrintOptions {
def main(args: Array[String]) {
println("Выбраны опции:")
for (arg <- args if arg startsWith "-") println(" " + (arg substring 1))
}
}
свежо. Нада же чем-то отличаться от явы (я про oject вместо class, хотя это же наверное класс)

Митко Соловец?
19.01.2017
13:49:24

guga
19.01.2017
13:49:25

Daniil
19.01.2017
13:49:29
args: Array[String] прямо go или емнип паскаль

Митко Соловец?
19.01.2017
13:49:31
а почему у класс метки нет?
я могу от него отнаследоваться?
или Котлин сам понимает, что если все поля неизменяемые, то и класс неизменяем?

Admin
ERROR: S client not available

Руслан
19.01.2017
13:50:11
final by default

Митко Соловец?
19.01.2017
13:50:24
прикольно

guga
19.01.2017
13:50:27
а в джаве они кривоваты

Митко Соловец?
19.01.2017
13:50:33
вот такой маркетинг мне нравится
когда говорят про плюсы инструмента, а не про недостатки другого

Daniil
19.01.2017
13:51:30

Митко Соловец?
19.01.2017
13:51:32
Руслан, давай еще пару киллер-фич, моё любимое - работа с коллекциями, что Котлин может предложить взамен богоподобного стрим апи из джавы 8?

guga
19.01.2017
13:52:04

Daniil
19.01.2017
13:52:13

Берял
19.01.2017
13:53:26

Daniil
19.01.2017
13:53:55
для тупых - а как это все компилится? Напрямую в байт-код, который умеет исполнять jvm или там с промежуточным мусором?

Google

Руслан
19.01.2017
13:54:02
listOf.stream().map(t -> t).collect(Collectors.toList())
listOf.map { t -> t }

guga
19.01.2017
13:54:03

Nikita
19.01.2017
13:54:33

Daniil
19.01.2017
13:55:20
полезность rx это отдельная тема)

Руслан
19.01.2017
13:55:27
// Map<?,?>
mapOf.map { t -> t }

Берял
19.01.2017
13:55:59
у котлина есть более сильные преимущества чем валы и вары, например, инлайн функций и нормальные дженерики, которые с инлайнингом могут в байткод попасть

Митко Соловец?
19.01.2017
13:56:33
это у каждой коллекции в котлине есть оператор map?

guga
19.01.2017
13:56:53
о_О а джаве не так?

Руслан
19.01.2017
13:57:04
из stdlib

Митко Соловец?
19.01.2017
13:57:14
для начала

guga
19.01.2017
13:57:25
ну как бы да

Руслан
19.01.2017
13:57:45

Митко Соловец?
19.01.2017
13:57:53

Alexander
19.01.2017
13:58:12

guga
19.01.2017
13:58:12

Руслан
19.01.2017
13:58:15

Митко Соловец?
19.01.2017
13:58:26

Руслан
19.01.2017
13:59:01