Kotlin ์ด๋ž€
ยท
Languages/Kotlin
Kotlin์€ ๊ฐ„๊ฒฐํ•˜๊ณ  ์•ˆ์ „ํ•˜๋ฉฐ ์œ ์ง€ ๊ด€๋ฆฌ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๋ฅผ ๋” ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์ตœ์‹  ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์€ Kotlin์˜ ๊ฐ€์žฅ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ ์ค‘ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค. Null ์•ˆ์ „์„ฑ: Kotlin์—๋Š” ์ปดํŒŒ์ผ ํƒ€์ž„์— null ํฌ์ธํ„ฐ ์˜ˆ์™ธ๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ์œ ํ˜• ์‹œ์Šคํ…œ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜ ์—†์ด null ๊ฐ’์„ ์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” nullable ํ˜•์‹ ์‹œ์Šคํ…œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ์ฝ”๋“œ์˜ ์•ˆ์ „์„ฑ๊ณผ ์‹ ๋ขฐ์„ฑ์„ ๊ฐœ์„ ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ํ™•์žฅ ํ•จ์ˆ˜: Kotlin์˜ ํ™•์žฅ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๊ฐ€ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ ๋„ ๊ธฐ์กด ํด๋ž˜์Šค์— ์ƒˆ ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋” ๊ฐ„๊ฒฐํ•˜๊ณ  ์ฝ๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ฝ”๋“œ ์ค‘๋ณต์„ ์ค„์ด๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜..
[kotlin]let ์—ฌ๋Ÿฌ๊ฐœ ์ฒดํฌํ•˜๊ธฐ
ยท
Languages/Kotlin
ํ•ด๋‹น ๋ฐฉ๋ฒ•์„ ์›ํ• ๋• ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. inline fun safeLet(p1: T1?, p2: T2?, block: (T1, T2)->R?): R? { return if (p1 != null && p2 != null) block(p1, p2) else null } inline fun safeLet(p1: T1?, p2: T2?, p3: T3?, block: (T1, T2, T3)->R?): R? { return if (p1 != null && p2 != null && p3 != null) block(p1, p2, p3) else null } inline fun safeLet(p1: T1?, p2: T2?, p3: T3?, p4: T4?, block: (T1, T2, T3, T4)->R?): R? ..
[Kotlin] java static method ์ฝ”ํ‹€๋ฆฐ ๋ฌธ๋ฒ•
ยท
Languages/Kotlin
์ž๋ฐ” : class Foo { public static int a() { return 1; } } ์ฝ”ํ‹€๋ฆฐ : class Foo { companion object { fun a() : Int = 1 } } From the docs: https://kotlinlang.org/docs/reference/object-declarations.html#companion-objects kotlinlang.org Companion Objects An object declaration inside a class can be marked with the companion keyword: class MyClass { companion object Factory { fun create(): MyClass = MyClass()..
[Kotlin] ์ฝ”ํ‹€๋ฆฐ val์™€ var ์ฐจ์ด
ยท
Languages/Kotlin
val(๊ฐ’์„ ๋œปํ•˜๋Š” value) ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ฐธ์กฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜๋‹ค. val๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ์ผ๋‹จ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ๋‚˜๋ฉด ์žฌ๋Œ€์ž…์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ์ž๋ฐ”๋กœ ๋งํ•˜์ž๋ฉด final ๋ณ€์ˆ˜์— ํ•ด๋‹นํ•œ๋‹ค. var(๋ณ€์ˆ˜๋ฅผ ๋œปํ•˜๋Š” variable) ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ์ฐธ์กฐ๋‹ค. ์ด๋Ÿฐ ๋ณ€์ˆ˜์˜ ๊ฐ’์€ ๋ฐ”๋€” ์ˆ˜ ์žˆ๋‹ค. ์ž๋ฐ”์˜ ์ผ๋ฐ˜ ๋ณ€์ˆ˜์— ํ•ด๋‹นํ•œ๋‹ค. ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ฐธ์กฐ์™€ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๋ฅผ ๋ถ€์ˆ˜ ํšจ๊ณผ๊ฐ€ ์—†๋Š” ํ•จ์ˆ˜์™€ ์กฐํ•ฉํ•ด ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ํ•จ์ˆ˜ํ˜• ์ฝ”๋“œ์— ๊ฐ€๊นŒ์›Œ์ง„๋‹ค. ์ฝ”ํ‹€๋ฆฐ ์ธ์•ก์…˜ - 65p