camdenorrb
07/08/2019, 8:26 PMNir
07/08/2019, 8:30 PMNir
07/08/2019, 8:30 PMNir
07/08/2019, 8:31 PMNir
07/08/2019, 8:31 PMNir
07/08/2019, 8:32 PMNir
07/08/2019, 8:33 PMNir
07/08/2019, 8:33 PMcamdenorrb
07/08/2019, 8:34 PMNir
07/08/2019, 8:34 PMcamdenorrb
07/08/2019, 8:34 PMadamd
07/08/2019, 8:36 PMcamdenorrb
07/08/2019, 8:37 PMcamdenorrb
07/08/2019, 8:37 PMadamd
07/08/2019, 8:39 PMcamdenorrb
07/08/2019, 8:40 PMNir
07/08/2019, 8:40 PMNir
07/08/2019, 8:41 PMadamd
07/08/2019, 8:42 PMadamd
07/08/2019, 8:43 PM+=
is confusing?sxtanna
07/08/2019, 8:44 PMsxtanna
07/08/2019, 8:44 PMsxtanna
07/08/2019, 8:45 PMadamd
07/08/2019, 8:45 PMsxtanna
07/08/2019, 8:45 PMadamd
07/08/2019, 8:46 PMsxtanna
07/08/2019, 8:46 PMsxtanna
07/08/2019, 8:46 PMadamd
07/08/2019, 8:47 PMadamd
07/08/2019, 8:48 PMsxtanna
07/08/2019, 8:49 PMsxtanna
07/08/2019, 8:49 PMadamd
07/08/2019, 8:49 PMsxtanna
07/08/2019, 8:49 PMsxtanna
07/08/2019, 8:50 PMadamd
07/08/2019, 8:50 PMsxtanna
07/08/2019, 8:51 PMadamd
07/08/2019, 8:51 PMthings
would be a mutable collection, instead of immutable?sxtanna
07/08/2019, 8:52 PMsxtanna
07/08/2019, 8:52 PMadamd
07/08/2019, 8:52 PMsxtanna
07/08/2019, 8:52 PMNir
07/08/2019, 8:54 PMNir
07/08/2019, 8:55 PMNir
07/08/2019, 8:55 PMNir
07/08/2019, 8:55 PMNir
07/08/2019, 8:56 PMNir
07/08/2019, 8:56 PMadamd
07/08/2019, 8:57 PMNir
07/08/2019, 8:57 PMadamd
07/08/2019, 8:57 PMYeah, this shit confused a new programmer to the language
sxtanna
07/08/2019, 8:58 PMadamd
07/08/2019, 8:58 PMnew programmer to the language
, the cost of an adding an element to an array is not the first thing I'm expecting/thinking ofcamdenorrb
07/08/2019, 8:59 PMsxtanna
07/08/2019, 8:59 PMNir
07/08/2019, 8:59 PMNir
07/08/2019, 8:59 PMNir
07/08/2019, 9:00 PMNir
07/08/2019, 9:00 PMNir
07/08/2019, 9:00 PMadamd
07/08/2019, 9:00 PMNir
07/08/2019, 9:00 PMsxtanna
07/08/2019, 9:00 PMadamd
07/08/2019, 9:01 PMNir
07/08/2019, 9:01 PMconst
a la C++, Rust, DNir
07/08/2019, 9:01 PMadamd
07/08/2019, 9:02 PMoperator fun
supporting adding an elementNir
07/08/2019, 9:02 PMcamdenorrb
07/08/2019, 9:03 PMadamd
07/08/2019, 9:03 PMcopy
explicitlyNir
07/08/2019, 9:03 PMx = x + y
is already making copies, and it's pretty explicit about itadamd
07/08/2019, 9:03 PMcamdenorrb
07/08/2019, 9:03 PMadamd
07/08/2019, 9:04 PMNir
07/08/2019, 9:04 PMNir
07/08/2019, 9:04 PMsxtanna
07/08/2019, 9:05 PM+
is explicit enough to show what its actually doingadamd
07/08/2019, 9:05 PMsxtanna
07/08/2019, 9:05 PMadamd
07/08/2019, 9:05 PMsxtanna
07/08/2019, 9:06 PMNir
07/08/2019, 9:06 PMsxtanna
07/08/2019, 9:06 PMadd
function, it makes sense for them to support the +
operatorsxtanna
07/08/2019, 9:06 PMcamdenorrb
07/08/2019, 9:06 PMcamdenorrb
07/08/2019, 9:06 PMadamd
07/08/2019, 9:06 PMNir
07/08/2019, 9:07 PMadamd
07/08/2019, 9:07 PMNir
07/08/2019, 9:07 PMcamdenorrb
07/08/2019, 9:07 PMadamd
07/08/2019, 9:07 PMsxtanna
07/08/2019, 9:07 PMsxtanna
07/08/2019, 9:07 PMcamdenorrb
07/08/2019, 9:08 PMadamd
07/08/2019, 9:09 PMcamdenorrb
07/08/2019, 9:09 PMcamdenorrb
07/08/2019, 9:09 PMadamd
07/08/2019, 9:10 PMsxtanna
07/08/2019, 9:10 PMsxtanna
07/08/2019, 9:10 PMadamd
07/08/2019, 9:11 PMadamd
07/08/2019, 9:12 PMadamd
07/08/2019, 9:13 PMcamdenorrb
07/08/2019, 9:13 PMadamd
07/08/2019, 9:14 PMsxtanna
07/08/2019, 9:15 PMsxtanna
07/08/2019, 9:15 PMsxtanna
07/08/2019, 9:16 PMadamd
07/08/2019, 9:16 PMadamd
07/08/2019, 9:16 PMsxtanna
07/08/2019, 9:16 PMadamd
07/08/2019, 9:19 PMthis shit
- maybe it was my misunderstanding, but I tried to understand where it came from 🙂sxtanna
07/08/2019, 9:19 PMadamd
07/08/2019, 9:20 PMadamd
07/08/2019, 9:20 PMcamdenorrb
07/08/2019, 9:21 PMcamdenorrb
07/08/2019, 9:22 PMadamd
07/08/2019, 9:24 PMNir
07/08/2019, 9:24 PMNir
07/08/2019, 9:24 PMNir
07/08/2019, 9:25 PMNir
07/08/2019, 9:25 PMadamd
07/08/2019, 9:25 PMNir
07/08/2019, 9:25 PMadamd
07/08/2019, 9:25 PMNir
07/08/2019, 9:25 PMNir
07/08/2019, 9:26 PMconst
Nir
07/08/2019, 9:26 PMadamd
07/08/2019, 9:26 PMNir
07/08/2019, 9:26 PMNir
07/08/2019, 9:27 PMList
is not an immutable data structure, it's just a read-only view of some data structure, that may or may not be immutableadamd
07/08/2019, 9:27 PMNir
07/08/2019, 9:27 PMNir
07/08/2019, 9:27 PMMutableList
inheriting from List
, that wasn't invented in KotlinNir
07/08/2019, 9:28 PMval x: MutableList<Int> // populate
foo(x) { x += 5 }
adamd
07/08/2019, 9:28 PMNir
07/08/2019, 9:28 PMfoo
takes e.g. List
and a lambdaNir
07/08/2019, 9:29 PMadamd
07/08/2019, 9:29 PMNir
07/08/2019, 9:30 PMadamd
07/08/2019, 9:30 PMNir
07/08/2019, 9:30 PMNir
07/08/2019, 9:30 PMNir
07/08/2019, 9:31 PMNir
07/08/2019, 9:31 PMNir
07/08/2019, 9:32 PMadamd
07/08/2019, 9:32 PMadamd
07/08/2019, 9:32 PMadamd
07/08/2019, 9:32 PMadamd
07/08/2019, 9:33 PMadamd
07/08/2019, 9:33 PMadamd
07/08/2019, 9:34 PMNir
07/08/2019, 9:35 PMNir
07/08/2019, 9:35 PMadamd
07/08/2019, 9:35 PMNir
07/08/2019, 9:35 PMNir
07/08/2019, 9:35 PMNir
07/08/2019, 9:36 PMNir
07/08/2019, 9:36 PMNir
07/08/2019, 9:36 PMNir
07/08/2019, 9:37 PMadamd
07/08/2019, 9:37 PMadamd
07/08/2019, 9:37 PMadamd
07/08/2019, 9:37 PMadamd
07/08/2019, 9:38 PMNir
07/08/2019, 9:38 PMNir
07/08/2019, 9:39 PMNir
07/08/2019, 9:39 PMcamdenorrb
07/08/2019, 9:42 PMcamdenorrb
07/08/2019, 9:43 PMghedeon
07/08/2019, 9:45 PMplus/+
and confusion:
https://youtrack.jetbrains.com/issue/KT-9992ghedeon
07/08/2019, 9:46 PMplus
and plusElement
🙂Nir
07/08/2019, 9:47 PMNir
07/08/2019, 9:48 PMNir
07/08/2019, 9:48 PMNir
07/08/2019, 9:49 PMcamdenorrb
07/08/2019, 9:49 PMNir
07/08/2019, 9:51 PMcamdenorrb
07/08/2019, 9:52 PMNir
07/08/2019, 9:56 PMNir
07/08/2019, 9:56 PMNir
07/08/2019, 9:56 PMNir
07/08/2019, 9:57 PMNir
07/08/2019, 9:57 PMvector<Foo>
is completely contiguous in memory.Nir
07/08/2019, 9:57 PMNir
07/08/2019, 9:57 PMcamdenorrb
07/08/2019, 10:02 PMcamdenorrb
07/08/2019, 10:02 PMcamdenorrb
07/08/2019, 10:03 PMcamdenorrb
07/08/2019, 10:03 PMNir
07/08/2019, 10:10 PMVec3
, which was literally 3 doubles, was pointer-indirected (like all Java types other than int, etc)Nir
07/08/2019, 10:11 PMNir
07/08/2019, 10:11 PMNir
07/08/2019, 10:13 PMNir
07/08/2019, 10:13 PMToddobryan
07/08/2019, 11:01 PMList
, Kotlin uses ArrayList
, which is amortized O(1) to add elements, so it's doing the same thing under the hood, but isn't nearly so awful. tl;dr Use List
instead of Array
if the size will change.Nir
07/08/2019, 11:11 PMMutableList
Nir
07/08/2019, 11:11 PMList
you can't perform any operations that modify the object (unless you downcast first)Nir
07/08/2019, 11:12 PMx += 1
for a List
is just syntactic sugar for x = x.plus(1)
(assuming x
is a var
)Toddobryan
07/09/2019, 3:15 PMList
. This is different than Scala, which uses Cons
lists, so it's O(1) to add at the beginning, but O(n) to add at the end. Because of the way ArrayList
works, the reverse is true in Kotlin.