String or String Array
from the CommonsWare Community archivesAt April 18, 2019, 6:54pm, Shahood asked:
Hi,
I was looking at the following code snippet from Elements of Kotlin v0.1 - Pg 51
val things = listOf("foo", "bar", "goo")
things
.filter { it[1]=='o' }
.forEach { println(it) }
I’m unable to understand how it[1]
returns the 2nd character. Is it
, which actually is a string, being treated as a string array here?
At April 18, 2019, 10:35pm, mmurphy replied:
No.
In Java, String
has the charAt()
method, which returns the character for a given 0
-based index.
Kotlin’s String
instead has a get()
function. It fills the same role as does charAt()
, and I assume that “under the covers” that get()
maps to charAt()
.
In Kotlin, though, a get(index: Int)
function automatically enables []
as an alternative syntax. Wherever you see []
used with an Int
index, that is really calling the get()
function, passing in the index as a parameter. It is one of Kotlin’s bits of “syntactic sugar”.
At April 19, 2019, 4:18am, Shahood replied:
Wow, excellent info. Pl consider including it in the book if not mentioned elsewhere.
Thanks a lot!