
Bogdan
20.02.2018
14:52:15

Mikhail
20.02.2018
14:53:37
Ну то есть нужна Map<Resource, (Resource) -> Config>?

Va
20.02.2018
14:53:39
первая идея конфигуратора — список лямбд, в которых описаны правила конфигурации, которые потом fold'ом сводятся к одной конфигурации. но ресурс типизированый, я хочу, чтобы в лямбду передавался Resource<T>, а лямбды не типизируются дженериками, поэтому нужен еще какой-то вариант, за которым я, в общем-то, и обратился к вам

Google

Va
20.02.2018
14:56:38
следовательно, он не может выступать ключом

Mikhail
20.02.2018
14:58:11
Для такого кейса, кстати, отлично подойдет Resource<*>, по моему, такое и в лямбду можно

Va
20.02.2018
14:59:56

Quantum Harmonizer
20.02.2018
15:00:08

Va
20.02.2018
15:00:30

Quantum Harmonizer
20.02.2018
15:00:45
проперти ты имел в виду

Alexey
20.02.2018
15:00:55
Дайте человеку сначало понять, что он хочет сделать

Va
20.02.2018
15:00:57
да, лямбды как проперти я имел в виду)

Alexey
20.02.2018
15:01:21
хотя бы в псевдокоде

Va
20.02.2018
15:06:51
если я недостаточно понятно объяснил суть проблемы, скажите об этом, я перефразирую )

Mikhail
20.02.2018
15:15:30
ресурсы зовут сервис "хэхэй сервис, дай мне конфиг" сервис говорит "ага, знаю тебя, для тебя конфиг А"

Va
20.02.2018
15:15:48
именно так

Google

Mikhail
20.02.2018
15:16:00
поему здесь нельзя использовать структуру данных с лямбдами?

Va
20.02.2018
15:17:42

Mikhail
20.02.2018
15:20:01
какой обьект?

Va
20.02.2018
15:22:25
какой обьект?
у тебя ключ — ресурс
как я заранее могу положить в мапу конфигурацию по ключу, если ключ — и есть сам объект, которому нужна конфигурация ?
какой обьект?
я, видимо, не сказал, что ресурсы создаются в рантайме ?
вроде сказал )

Mikhail
20.02.2018
15:32:06

Va
20.02.2018
15:34:24
дескриптор ресурса — url. тогда, получается, мне нужно заранее прописывать конфигурацию для конкретного url и это, в общем-то, логично.
но большую часть времени, ты хочешь описывать конфигурацию для, например, всех ресурсов этого сервиса.
а конфигурацию для конкретного ресурса, впрочем, можно прописать у самого ресурса и склеить с конфигурацией сервиса

Mikhail
20.02.2018
15:36:19
дескриптор ресурса — url. тогда, получается, мне нужно заранее прописывать конфигурацию для конкретного url и это, в общем-то, логично.
но большую часть времени, ты хочешь описывать конфигурацию для, например, всех ресурсов этого сервиса.
а конфигурацию для конкретного ресурса, впрочем, можно прописать у самого ресурса и склеить с конфигурацией сервиса
если ресурс сам знает свою конфигурацию, то зачем ему сервис?

Va
20.02.2018
15:37:25
для определения общей конфигурации
например, для всех ресурсов я хочу добавлять какую-то штуку
или не для всех, а только для тех, у кого url содержит слово api

Bogdan
20.02.2018
15:38:49

Va
20.02.2018
15:39:29

Mikhail
20.02.2018
15:41:20

Va
20.02.2018
15:44:28

Alexey
20.02.2018
15:52:48
Как ты хочешь использовать инфу о T?

Va
20.02.2018
16:01:17

Google

Виталий
20.02.2018
17:24:51
Ребят чет я с коллекциями туплю, в жабе так, а как реализовать в котлине ? что бы без null
ATile - интерфейс, остальные наследники

Quantum Harmonizer
20.02.2018
17:25:58
arrayOf(...)

Виталий
20.02.2018
17:26:37
arrayOf(...)
там вроде варгаг, + матерится на ATile отсутствует компонент какой то
ATile = интерфейс

Quantum Harmonizer
20.02.2018
17:27:20
варарг, и что?
остальное вообще не содержательно

Виталий
20.02.2018
17:28:16
это игнтерфейс а оно гвоворит инициализируй его ?

Quantum Harmonizer
20.02.2018
17:29:42
код какой?

Va
20.02.2018
17:29:49
Array<ATile>(size) { создать объект }

Виталий
20.02.2018
17:30:04
двойной массив

Quantum Harmonizer
20.02.2018
17:30:40
Array<Array<ATile>>(size) { Array<ATile>(size) { ... } }

Виталий
20.02.2018
17:30:57
код какой?
да ни какой не работает кроме arrayOfNulls

Va
20.02.2018
17:31:04
Array<Array<ATile>>(size) { row -> Array<ATile>(size) { column -> ... } }

Quantum Harmonizer
20.02.2018
17:31:09

Va
20.02.2018
17:31:37
а еще можно typealias зафигачить, чтобы не страдать <<<<>>>>>

Виталий
20.02.2018
17:31:38
ПОКАЖИ КОД
да его нет, я пишу и удаляю, потому что ошибки

Quantum Harmonizer
20.02.2018
17:31:54
у меня всё работает

Google

Виталий
20.02.2018
17:33:50
троеточие - че туда пихать то ?)))
эта куча скобок просто мозг выносит

Quantum Harmonizer
20.02.2018
17:34:12
инициализацию
Array<Array<ATile>>(size) {
Array<ATile>(size) {
SomeTile()
}
}

Виталий
20.02.2018
17:34:53
инициализацию
то есть можно функцию ? потому что туда пихать наследников разных надо
приведение типа ?

Va
20.02.2018
17:37:05
typealias Matrix<T> = Array<Array<T>>
inline fun <reified T> createMatrix(sizeX: Int, sizeY: Int, init: (Int, Int) -> T) =
Matrix(sizeX) { x -> Array(sizeY) { y -> init(x, y) } }
и создаешь матрицу в виде createMatrix(10, 20) { x, y -> ... }
и не будет куча скобочек
а вот все остальное засунь куда-то в файл с названием Extensions или как-то так

Виталий
20.02.2018
17:39:11

Va
20.02.2018
17:41:08
val matrix = createMatrix(10, 20) { x, y -> SomeTile() }
и пользуйся тем же matrix[4][4]
но обрати внимание, что сделать matrix[4][4] = SomeOtherTile() не выйдет, потому что матрица иммутабельна(не меняется)

Виталий
20.02.2018
17:42:04
от ATile

Va
20.02.2018
17:42:35
да почему же, на здоровье, только тогда val matrix = createMatrix<ATile>(10, 20) { x, y -> SomeTile() }

Виталий
20.02.2018
17:43:25
SomeOther() имеется ввиду ?

Va
20.02.2018
17:44:10
ну например
да, видимо )

Google

Виталий
20.02.2018
17:44:40
еще бы знать кто такой иммутабельна )

Va
20.02.2018
17:44:54
значит, что его нельзя менять

Виталий
20.02.2018
17:45:17
val то есть

Quantum Harmonizer
20.02.2018
17:45:21

Va
20.02.2018
17:45:53

Quantum Harmonizer
20.02.2018
17:46:05

Виталий
20.02.2018
17:46:25
ну менять я не могу ток ее размеры, в ячейках то я могу копаться
ну да

Va
20.02.2018
17:46:48

Виталий
20.02.2018
17:48:00
ну если он val то переинициализировать его нельзя сменив размеры, а если var то его можно поменять инициализировав заного с новыми размерами, я так понял

Va
20.02.2018
17:48:08
тогда отбой, можно делать любой set

Quantum Harmonizer
20.02.2018
17:48:34

Виталий
20.02.2018
17:48:48

Va
20.02.2018
17:48:54
да, my bad ?
листы немутабельны, да ?

Александр
20.02.2018
17:49:44
:-)

Виталий
20.02.2018
17:50:05
в листах вроде возвращается новый массив, а пихать нельзя ?

Quantum Harmonizer
20.02.2018
17:50:06
листы немутабельны, да ?
всё, что за интерфейсами, делится на читаемое и записываемое — Iterable/Iterator, Collection, List, Set