@kotlin_lang

Страница 777 из 982
Egor
28.07.2018
20:54:39
Точнее, !is

Quantum Harmonizer
28.07.2018
20:54:42
() -> Unit — это подтип Function<Unit>

Egor
28.07.2018
20:54:58
А, вот так? Окей

Quantum Harmonizer
28.07.2018
20:54:59
{} is Function<*> // true

Google
Egor
28.07.2018
20:55:15
Не знал, круто

Sander
28.07.2018
22:11:11
val list = arrayListOf<Int>() как задать initialCapacity: Int = 0, используя arrayListOf?

Bogdan
28.07.2018
22:12:28
Sander
28.07.2018
22:14:54
ну я смотрю, public fun <T> arrayListOf(vararg elements: T): ArrayList<T> = if (elements.size == 0) ArrayList() else ArrayList(ArrayAsCollection(elements, isVarargs = true)) и что я должен увидеть

example: val list = arrayListOf<Int>() - тут не могу var list2 = ArrayList<Int>(5) - тут могу

Dibro
28.07.2018
22:17:19
это бессмысленно

Sander
28.07.2018
22:17:42
это пример просто

Bogdan
28.07.2018
22:18:01
Dibro
28.07.2018
22:18:35
это пример просто
ну в любом случае, через функцию никак нельзя

Bogdan
28.07.2018
22:19:54
ну я не вижу как передать
значить никак, вот тут и нужно узать ArrayList

Google
Sander
28.07.2018
22:20:30
тогда arrayListOf - не всегда подходит и придется использовать ArrayList, просто до этого я спрашивал вопрос, что использовать arrayListOf или ArrayList, на что мне ответили, использовать arrayListOf.

Sander
28.07.2018
22:22:30
как-то в Kotline все усложнено, в Java как-то все попроще...

Bogdan
28.07.2018
22:22:48
это мутабельная коллекция
какой тип возращает

Dibro
28.07.2018
22:23:15
разве ?
arrayListOf(...) возвращает (как ни странно) ArrayList

а ArrayList в котлине мутабельная, т.к. есть метод .add(...)

Sander
28.07.2018
22:28:33
val list3 = arrayListOf<Int>(1,2,3).apply { ensureCapacity(5) } - хотя тоже нормально, можно сразу данные в коллекцию добавить.

Sander
28.07.2018
22:29:11
смысле?

val list3 = arrayListOf<Int>(1,2,3).apply { ensureCapacity(5) } - вот так можно!

Sander
28.07.2018
22:30:57
да но как узнать что так можно делать? в доках особо ничего нет по этому - https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/array-list-of.html

Sander
28.07.2018
22:31:24
ну Java тут не причем

Google
Bogdan
28.07.2018
22:32:02
ну Java тут не причем
да, но дока не должна расказывать про методы ArrayList

Sander
28.07.2018
22:32:42
var list2 = ArrayList<Int>(5).apply { ensureCapacity(5) }

Bogdan
28.07.2018
22:32:55
var list2 = ArrayList<Int>(5).apply { ensureCapacity(5) }
https://kotlinlang.org/docs/reference/extensions.html

Sander
28.07.2018
22:32:57
как догадаться что вот через apply - так можно

Bogdan
28.07.2018
22:33:08
Sander
28.07.2018
22:33:17
какую

Bogdan
28.07.2018
22:33:24
я сылку кинул

Sander
28.07.2018
22:33:40
там ничего нет я уже эту доку читал

Dibro
28.07.2018
22:34:11
ты мог написать банально val list = arrayListOf(...) list.ensureCapacity(...) ...

Sander
28.07.2018
22:34:42
var list2 = ArrayList<Int>(5).ensureCapacity(5)

Bogdan
28.07.2018
22:34:42
var list2 = ArrayList<Int>(5).apply { ensureCapacity(5) }
extensions - рпасширение, ты просто над ArrayList вызвал функцию в которой изменил развмер

Bogdan
28.07.2018
22:35:30
там ничего нет я уже эту доку читал
прочить != понять. Не понимаешь перечитывай уточняй, смотри код

Sander
28.07.2018
22:36:17
var list2 = ArrayList<Int>(5).ensureCapacity(5)
я так и сделал, просто надо соурсы читать чтоб догадаться тчо так можно сделать

Bogdan
28.07.2018
22:36:56
Bogdan
28.07.2018
22:37:30
он джаву вроде не учил, спразу с котлина

Sander
28.07.2018
22:37:35
от куда мне знать? в доках дают самые basic знания, дальше уже сам разбирайся, вдоках всей инфы нет

может в Java доке есть

Google
Ilya
28.07.2018
22:38:43
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-array-list/-array-list/ensure-capacity.html ахах)

Dibro
28.07.2018
22:40:23
от куда мне знать? в доках дают самые basic знания, дальше уже сам разбирайся, вдоках всей инфы нет
подожди, ты спрашивал, есть ли способ задать капасити через фабричную функцию. я тебе ответил, что нет, и предложил альтернативный вариант с использованием джава метода ArrayList'а. о какой доке идёт речь?

Admin
ERROR: S client not available

Dibro
28.07.2018
22:42:03
Sander
28.07.2018
22:43:23
такое ощущения что желание учится -1
вот только не начинай пожалуйста, может я хреново искал и не нашел, и не стоит судить людей, если бы желания не было - то я бы и не учил, уж тем более не спрашивал.

Sander
28.07.2018
22:46:15
выше человек нашел, я не буду тебе в 2-а часа ночи доку пересказывать
нашел потому что наверняка программирует на Java/Kotlin уже давно и знает что искать, я не просил пересказывать, только подсказать как это сделать ...

Sander
28.07.2018
22:50:10
там по default стоит 10, если я не ошибаюсь, если я знаю что у меня размер коллекции будет больше, то разумно будет увеличить его ... вместо того чтоб он потом каждый раз в натайме его увеличивал, что будет довольно медленно.

Google
Bogdan
28.07.2018
22:56:55
но если он это имел ввиду то да, тоже самое

Sander
28.07.2018
22:57:26
я это и имел ввиду

?

Friedrich
29.07.2018
06:00:58
val list3 = arrayListOf<Int>(1,2,3).apply { ensureCapacity(5) } - вот так можно!
Мне кажется, это фигня. У тебя тут может быть лишнее выделение памяти.

Ну, грубо говоря, сначала может быть выделен массив под 3 элемента, а потом он будет расширен до 5. Неэффективненько получается!

Quantum Harmonizer
29.07.2018
07:42:11
разве ?
Более того, даже listOf(1, 2, 3) — мутабельная коллекция.

Mi
29.07.2018
07:43:38
Более того, даже listOf(1, 2, 3) — мутабельная коллекция.
Ты про то, что в джаве её можно поменять?

Для мутабельных же есть mutableListOf

Quantum Harmonizer
29.07.2018
07:44:15
Ты про то, что в джаве её можно поменять?
Да и в котлине можно, но придётся кастить, а за это надо лапки отрывать)

Mi
29.07.2018
07:44:57
А оно разве не создаёт имплементации которые падают на методе изменения?

Quantum Harmonizer
29.07.2018
07:47:17
А оно разве не создаёт имплементации которые падают на методе изменения?
listOf() = emptyList() listOf(arg) = singletonList(arg) listOf(vararg args) = args.asList() Array.asList = java.util.Arrays.asList поэтому listOf() и listOf(arg) неизменяемые, а листы из 2+ элементов изменяемые.

Метод add у них не работает, т. к. там фиксированный массив. А set — вполне.

Alexander
29.07.2018
09:22:57
Quantum Harmonizer
29.07.2018
09:24:16
> но придётся кастить, а за это надо лапки отрывать)

Андрей
29.07.2018
09:35:12
кто-нибудь юнит тесты для корутин писал?

Method myLooper in android.os.Looper not mocked.

постоянно

даже если стоит только что-нибудь типа

Страница 777 из 982