๐คํ๋ก๊ทธ๋๋ฐ ์ธ์ด/Kotlin
[Kotlin/์ฝํ๋ฆฐ] Infix ํจ์ (Infix notation)
Infix ๋ ๊ฐ์ ๋ณ์ ์ฌ์ด์ ์ค๋ ํจ์ ์กฐ๊ฑด ๋ฉค๋ฒ ํจ์์ด๊ฑฐ๋ ํ์ฅ ํจ์์ฌ์ผ ํจ ํ๋์ ๋งค๊ฐ๋ณ์๋ฅผ ๊ฐ์ ธ์ผ ํจ ๊ธฐ๋ณธ ๊ฐ์ ๊ฐ์ง ์ ์์ผ๋ฉฐ varargs ์ฌ์ฉ ๋ถ๊ฐ ์์ 1 infix fun Int.shl(x: Int): Int { ... } // calling the function using the infix notation 1 shl 2 // is the same as 1.shl(2) ์์ 2 fun main() { infix fun Int.times(str: String) = str.repeat(this) // 1 println(2 times "Bye ") // 2 val pair = "Ferrari" to "Katrina" // 3 println(pair) infix fun String.onto(..
[Kotlin/์ฝํ๋ฆฐ] ํ์ ์ฒดํฌ, ์๋ ํ๋ณํ (Type checks and automatic casts)
is is ์ฐ์ฐ์๋ฅผ ํตํด ํ์ ์ฒดํฌ๋ฅผ ํ ์ ์๋ค. ๋ํ immutable ๋ก์ปฌ ๋ณ์(val)์ด๊ฑฐ๋ property๊ฐ ์ด๋ค ํ์ ์ธ์ง ํ์ธ๋์๋ค๋ฉด ์๋์ผ๋ก ํ ๋ณํ์ด ์ด๋ค์ง๋ค. ์์ 1 fun getStringLength(obj: Any): Int? { if (obj is String) { // 'obj' ๊ฐ String ํ์ ์์ด ํ์ธ๋จ. // `obj` ๋ฅผ String ํ์ ์ผ๋ก ์๋ ํ๋ณํ return obj.length } // `obj` ๊ฐ String ํ์ ์ด ์๋๋ผ๋ฉด ์ฌ์ ํ Any ํ์ return null } ์์ 2 !is๊ณผ ๊ฐ์ ํํ๋ก๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. fun getStringLength(obj: Any): Int? { if (obj !is String) return null // `obj` ..