
Alexander
29.08.2018
17:03:46
Куда?

Maxim
29.08.2018
17:04:15

Bogdan
29.08.2018
17:04:56
Куда?
ИТ, программирование, сейчас интересуюсь нечеткой логикой и объеденения ее с нейронкой и генетическими алгоритмами

Alexander
29.08.2018
17:07:01
У меня в дальних планах разработка вероятностной логики на основе мат-стата и информации Фишера (есть кое-какие наработки) и использования этой штуки для анализа экспериментальных данных. Но это когда я распихаю студентов таким образом, что они зарабатывали много денег и можно было заниматься всякой возвышенной фигней.

Google

Alexander
29.08.2018
17:07:05
Но это офтоп

Galia
29.08.2018
17:07:25

Maxim
29.08.2018
17:09:42

Andrew
29.08.2018
17:10:07

Alexander
29.08.2018
17:10:14
Она по-моему спрашивает о том, является ли сидение в котлин-чатике признаком жизни.
Не является. Можно печатать не приходя в сознание.

Andrew
29.08.2018
17:11:19
А иногда только на это сил и хватает.
Но это действительно оффтоп.

Sergey
29.08.2018
17:23:34
https://github.com/JetBrains/kotlin/releases/tag/v1.3-M2

Mikhail
29.08.2018
17:40:35
Кстати, есть ли какое нибудь обьяснение, почему нет интерфейса для объектов с componentN? Можно было бы очень классные вещи делать

Artem
29.08.2018
17:43:26

Vladimir
29.08.2018
17:44:50

Igor
29.08.2018
17:47:06
Еще бы полиморфизма к ним (что бы можно было говорить "мне нужен тип с componentN", неважно какой)

Quantum Harmonizer
29.08.2018
17:49:45

Google

Mikhail
29.08.2018
17:52:02
Как Tuple<A, B, C>

Bogdan
29.08.2018
17:52:48

Mikhail
29.08.2018
17:53:36
Тогда бы можно было утроить настоящий паттерн-матчинг, мапперы и всякие штуки для сериализации и иных манипуляций с дата классами

Va
29.08.2018
17:53:54

Mikhail
29.08.2018
17:55:15
Ну сделай его датакласом
Ну допустим я хочу сделать функцию, которая проверяет, является ли второе поле стрингой со значением "1"

Va
29.08.2018
17:55:47

Mikhail
29.08.2018
17:56:20
Если бы был интерфейс Component2<A, B> можно было бы сделать value.component2() == "1"
А так надо лезть в реылексию, хотя на самом деле все методы уже есть
Точно также всякое копирование
Или шифрование
Или маппинг

Va
29.08.2018
17:57:30

Mikhail
29.08.2018
17:59:05
Может еще toString руками написать и hashcode?

Va
29.08.2018
18:00:13
Зачем, если component1 тебе сразу вернёт то, что нужно ?
Ты желаешь экстеншн к классу data class SomeClass
И там дергаешь нужные тебе методы
Впрочем, можно сразу к полям )

Mikhail
29.08.2018
18:02:21
Я хочу ко всем data class, рассматривая их как tuple

Google

Va
29.08.2018
18:02:26
А тебя type erasure не смущает ?

Mikhail
29.08.2018
18:03:17
А чем оно должно меня смущать?

Va
29.08.2018
18:04:29
Как ты собрался узнавать тип того, что вернёт component ?
Или работать как с Any ?

Mikhail
29.08.2018
18:05:19

Va
29.08.2018
18:05:38

Bogdan
29.08.2018
18:05:55

Va
29.08.2018
18:06:00
Это не для jvm задача немного )

Bogdan
29.08.2018
18:06:04
на уровне компилятора все ок

Va
29.08.2018
18:06:05

Mikhail
29.08.2018
18:06:26
data class User(name: String, email: Email) : Component2<String, Email>

Quantum Harmonizer
29.08.2018
18:06:43
class Triple<T, U, V> : Component1<T>, Component2<U>, Component3<V> ?

Bogdan
29.08.2018
18:06:49
Каким образом ?
А при чем тут затираение, если проверка будет на уровне компиляции ?

Mikhail
29.08.2018
18:07:00
И на этапе компиляции все известно?

Va
29.08.2018
18:07:10

Bogdan
29.08.2018
18:07:20

Va
29.08.2018
18:07:32

Quantum Harmonizer
29.08.2018
18:07:47
компилятор — и есть кодген

Mikhail
29.08.2018
18:08:08

Google

Va
29.08.2018
18:09:05
Ну, если ты хочешь единое что-то для всего, ты утыкаешься в рантайм проблемы. Если ты заранее опишешь типы – чем использовать kotlinpoet хуже ?

Quantum Harmonizer
29.08.2018
18:09:42

Bogdan
29.08.2018
18:10:15

Va
29.08.2018
18:10:58
Я пишу маппер функции, которые его модифицируют, задавая тип явно

Quantum Harmonizer
29.08.2018
18:12:57

Va
29.08.2018
18:13:05
Допустим, сгенерился интерфейс Component<T1,T2>
Что с ним дальше делать ?)
Мб я просто недопонял проблемы

Bogdan
29.08.2018
18:13:07

Admin
ERROR: S client not available

Mikhail
29.08.2018
18:13:42

Quantum Harmonizer
29.08.2018
18:13:45

Dmitriy
29.08.2018
18:14:04
Привет, а этим Triple или как-то иначе можно описать такой тип для json массива с разными типами данных ["string", 33, false]?
Массив фиксированной длины

Quantum Harmonizer
29.08.2018
18:14:55
ну, Triple<String, Int, Boolean>?

Mikhail
29.08.2018
18:20:44

Va
29.08.2018
18:21:43
И чем интерфейс лучше чем просто дата класс ?

Bogdan
29.08.2018
18:23:49
даже гугл не поможет

Google

Va
29.08.2018
18:24:21
Отличное объяснение )

Bogdan
29.08.2018
18:24:44

Maxim
29.08.2018
18:25:14

Mikhail
29.08.2018
18:25:25
Ты точно на котлине пишешь?

Bogdan
29.08.2018
18:25:41

Quantum Harmonizer
29.08.2018
18:26:27

Bogdan
29.08.2018
18:26:46

Mikhail
29.08.2018
18:26:55

Va
29.08.2018
18:26:58
Может тогда стоит переюзать датакласс ?

Bogdan
29.08.2018
18:27:08

Mikhail
29.08.2018
18:27:09

Va
29.08.2018
18:29:05
как ?
Ну, если ты пишешь экстеншн к Component<String, Int> то это ничем не лучше, чем если ты сделаешь экстеншн к дата классу StringInt

Quantum Harmonizer
29.08.2018
18:29:52

Va
29.08.2018
18:30:23
А что за функцию ты хочешь написать для Component<T1, T2>, можно пример ?

Quantum Harmonizer
29.08.2018
18:30:37

Bogdan
29.08.2018
18:30:56
а теперь у меня есть функция, она принимает тупл, и что-то там делает, ей все равно что там реально за объект, ей важен интерфейс который предоставляет данный объект

Va
29.08.2018
18:31:34

Bogdan
29.08.2018
18:32:24

Va
29.08.2018
18:33:01
То есть, ты в общем случае начинаешь упираться на тип, erasure всё сломает

Bogdan
29.08.2018
18:33:19