Android/Kotlin
-
[Kotlin] Scope functions (let, with, run, apply, also) ์ดํดAndroid/Kotlin 2021. 11. 8. 01:10
Scope functions ์ด๋? ์ฝํ๋ฆฐ์ผ๋ก ๊ฐ๋ฐ์ ํ๋ฉด์ ์ฌ๋ฌ Scope function๋ค์ ์ฌ์ฉํ์์ง๋ง, ์ฌ์ฉํ๋ฉด์๋ ์ ๋๋ก ์ฌ์ฉํ๊ณ ์๋์ง ์๊ตฌ์ฌ์ด ๋ค ๋๋ ๋ง์๊ณ ์ํฉ์ ๋ฐ๋ผ ์ด๋ค Scope function๋ค์ ์ฌ์ฉํ๋๊ฒ ์ข์์ง ๊ณ ๋ฏผ์ด ๋ง์์ต๋๋ค. ๊ณต์๋ฌธ์๋ฅผ ๋ณด๊ณ ์ ๋๋ก ๊ณต๋ถํ๊ธฐ๋ก ๋ง์์ ๋จน์๊ณ ๊ณต์๋ฌธ์๋ฅผ ํ ๋๋ก ๊ฐ๋ฐ ๊ฒฝํ๊ณผ ํจ๊ป ๊ธ์ ์์ฑํด๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋จผ์ , Scope function์ 5๊ฐ๋ก let, with, run,apply, also ๊ฐ ์ฝํ๋ฆฐ์ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํฌํจ๋์ด ์์ต๋๋ค. Scope function์ ๋ง ๊ทธ๋๋ก ๋ฒ์(Scope)๊ฐ ์๊ธฐ๋๋ฐ ํด๋น ๋ฒ์๋ ํน์ ๊ฐ์ฒด์ ์ปจํ ์คํธ๋ฅผ ๊ฐ์ง๊ณ ์ผ๋ จ์ ๋์์ ํฌํจํ๋ ํจ์์ ๋๋ค. Scope function์ ๋๋ค์๊ณผ ๋์ผํ๊ฒ ์์ฑ์ ํ..
-
[Kotlin] Set ์ฌ์ฉ๋ฒAndroid/Kotlin 2021. 8. 13. 00:32
์ด ๊ธ์ "์ค์ฌ์ฑ์ Google ๊ณต์ ์ธ์ด Kotlin" ๊ฐ์๋ฅผ ๋ฃ๊ณ ๊ณต๋ถํ ๋ด์ฉ์ผ๋ก ์์ฑํ์์ต๋๋ค. Set Set์ ์ํ์์ ์งํฉ์ด๋ผ๊ณ ์ฌ์ฉํ ์ฉ์ด์ ๋์ผํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ด๋ ์ปฌ๋ ์ ์ ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ๋ด๋ ์์๊ฐ ๊ด๊ณ๊ฐ ์๊ณ ์ค๋ณต๋ ๊ฐ์ฒด๋ฅผ ๋ด์ง ์๋๋ค๋ ๊ฒ์ด ํน์ง์ ๋๋ค. ์ํ๋ ๊ฐ์ฒด๋ฅผ ์ฐพ๊ธฐ ์ํด์๋ ์์๊ฐ ์ ํด์ง์ง ์์๊ธฐ ๋๋ฌธ์ ์ผ์ผ์ด ํ์ํด์ผ ํฉ๋๋ค. Set๋ ๋ค๋ฅธ ์ปฌ๋ ์ ๊ณผ ๋์ผํ๊ฒ ๋ถ๋ณํ set๊ณผ ๊ฐ๋ณํ set์ด ์กด์ฌํฉ๋๋ค. immutable Set fun main(){ val set1 = setOf(1,3,5,3,1) println(set1) // [1,3,5] val set2 = setOf(2,4,5,5,4,2) println(set2) // [2,4,5] } setOf() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ถ๋ณํ ..
-
[Kotlin] Map ์ฌ์ฉ๋ฒAndroid/Kotlin 2021. 8. 12. 23:59
์ด ๊ธ์ "์ค์ฌ์ฑ์ Google ๊ณต์ ์ธ์ด Kotlin" ๊ฐ์๋ฅผ ๋ฃ๊ณ ๊ณต๋ถํ ๋ด์ฉ์ผ๋ก ์์ฑํ์์ต๋๋ค. Map Key์ Value์ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํ Collection ์ ๋๋ค. List์ ๋์ผํ๊ฒ ๊ฐ๋ณํ Map์ ๋ถ๋ณํ Map์ด ์์ต๋๋ค. immutable Map fun main(){ val map1 = mapOf("key1" to 1, "key2" to 2, "key3" to 3) val map2 = mapOf("key1" to '1', "key2" to '2', "key3" to '3') println(map1) // {key1=1, key2=2, key3=3} } Kotlin์์๋ mapOf() ํจ์๋ฅผ ํตํด์ ์ฝ๊ฒ map์ ์์ฑํ ์ ์์ต๋๋ค. map์ ..
-
[Kotlin] List ์ฌ์ฉ๋ฒAndroid/Kotlin 2021. 8. 12. 23:36
์ด ๊ธ์ "์ค์ฌ์ฑ์ Google ๊ณต์ ์ธ์ด Kotlin" ๊ฐ์๋ฅผ ๋ฃ๊ณ ๊ณต๋ถํ ๋ด์ฉ์ผ๋ก ์์ฑํ์์ต๋๋ค. List Array์ ๋์ผํ๊ฒ ์ธ๋ฑ์ค๋ฅผ ํตํด ์์์ ์ ๊ทผ์ด ๊ฐ๋ฅํ ์ ํ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค. Array๋ ํฌ๊ธฐ๊ฐ ์ ํด์ง๋ฉด ๋ณ๊ฒฝํ ์ ์์ง๋ง, List๋ ์ถ๊ฐ, ์ญ์ ๊ฐ ๊ฐ๋ฅํฉ๋๋ค. Kotlin์์๋ List๋ฅผ ์์ฑํ ๋ ํน์ง์ด ์๋๋ฐ ๋ถ๋ณํ ๋ฆฌ์คํธ์ ๊ฐ๋ณํ ๋ฆฌ์คํธ๊ฐ ์์ต๋๋ค. ๋ถ๋ณํ ๋ฆฌ์คํธ๋ ๊ฐ๋ณํ ๋ฆฌ์คํธ์ ๋นํด ์์ ์ ๊ทผํ๋ ์๋๊ฐ ์กฐ๊ธ ๋ ๋น ๋ฅด๊ณ ๊ฐ๋ณํ ๋ฆฌ์คํธ๋ ์๋ก์ด ์์๋ฅผ ์ถ๊ฐํ ๋ ์ถ๊ฐ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ธก๋ฉด์์๋ ๋จ์ด์ง๋ค๊ณ ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ kotlin์์๋ List๋ฅผ ์ฌ์ฉํ ๋ ๋ณ๊ฒฝํด์ผํ ๊ฒฝ์ฐ์ ๋ถ๋ณํ ๋ฆฌ์คํธ๋ฅผ ๊ฐ๋ณํ ๋ฆฌ์คํธ๋ก ๋ณ๊ฒฝ ํ ๋ณ๊ฒฝ์ด ์๋ฃ๋๋ฉด, ๋ถ๋ณํ ๋ฆฌ์คํธ๋ก..
-
[Kotlin] String ์ฌ์ฉ๋ฒAndroid/Kotlin 2021. 8. 12. 03:02
์ด ๊ธ์ "์ค์ฌ์ฑ์ Google ๊ณต์ ์ธ์ด Kotlin" ๊ฐ์๋ฅผ ๋ฃ๊ณ ๊ณต๋ถํ ๋ด์ฉ์ผ๋ก ์์ฑํ์์ต๋๋ค. ๋ฌธ์์ด Kotlin์ ๋ฌธ์์ด์ Java์ ๋์ผํ๊ฒ String ํด๋์ค ๊ฐ์ฒด๋ฅผ ์์ฑํด์ ์ฌ์ฉํฉ๋๋ค. Kotlin์ Java์ ๋๋ถ๋ถ ๋ฉ์๋๊ฐ ๋น์ทํ๊ฒ ์ ๊ณต๋๋ฉฐ ๋ช๊ฐ์ง ๋ฉ์๋๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. Index Java์์ String์ ๊ฐ charater๋ฅผ ์ ๊ทผํ๊ธฐ ์ํด ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ์ง๋ง Kotlin์ ๋ฌธ์์ด์ ๋ฐฐ์ด์ ํํ๋ก ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ 0๋ถํฐ ์์ํ๋ ์ธ๋ฑ์ค๋ก ์ ๊ทผํ ์ ์์ต๋๋ค. String์ ๋ถ๋ณํ์ ๋ฐฐ์ด๋ก ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ ์์๋ฅผ ์ ๊ทผํ๋ ์ฉ๋๋ก๋ง ๊ฐ๋ฅํ๋ฉด ๋ณ๊ฒฝํ ์๋ ์์ต๋๋ค. fun main(){ val str1 = "hello world" println(str1[0]) // h ..
-
[Kotlin] Array ์ฌ์ฉ๋ฒAndroid/Kotlin 2021. 8. 12. 02:03
์ด ๊ธ์ "์ค์ฌ์ฑ์ Google ๊ณต์ ์ธ์ด Kotlin" ๊ฐ์๋ฅผ ๋ฃ๊ณ ๊ณต๋ถํ ๋ด์ฉ์ผ๋ก ์์ฑํ์์ต๋๋ค. Array C++, Java์์๋ ๋์ผํ๊ฒ ์กด์ฌํ๋ ๋ฐฐ์ด(Array)๋ ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ ์ ํ ๊ณต๊ฐ์ ํ๋ณดํ์ฌ ๊ฐ์ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ์๋ฃ ๊ตฌ์กฐ ์ค ํ๋์ ๋๋ค. ๋ฐฐ์ด์ 0๋ถํฐ ์์๋๋ ์ธ๋ฑ์ค ๋ฒํธ๋ก ๊ด๋ฆฌํ๊ณ Kotlin์์ Array๋ Generic ํ์ ์ผ๋ก ์ ํด์ ธ ์์ด ๋ค์ํ ํ์ ์ ๊ฐ์ ๋ด์ ์ ์์ต๋๋ค. Kotlin์์๋ ๋ฐฐ์ด์ ์์ฑํ๋ ๋ณ๋์ ํจ์๊ฐ ์ฃผ์ด์ง๋๋ฐ arrayOf() ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๊ฒ ์์ฑํ ์ ์์ต๋๋ค. arrayOf์๋ ํ๋์ ํ์ ๋ง์ด ์๋ ์ฌ๋ฌ ํ์ ์ ๋ด์ ์ ์๊ณ , ํ ํ์ ์ผ๋ก ์ ํํ๊ณ ์ถ์ผ๋ฉด ์๋ฃํ + arrayOf() ํํ์ ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. arrayOf๋ ..
-
[Kotlin] Functional ProgrammingAndroid/Kotlin 2021. 8. 11. 22:41
์ด ๊ธ์ "์ค์ฌ์ฑ์ Google ๊ณต์ ์ธ์ด Kotlin" ๊ฐ์๋ฅผ ๋ฃ๊ณ ๊ณต๋ถํ ๋ด์ฉ์ผ๋ก ์์ฑํ์์ต๋๋ค. ํจ์ํ ํ๋ก๊ทธ๋๋ฐ Java๋ ๊ฐ์ฒด์งํฅ ์ธ์ด๋ก ํด๋์ค๋ฅผ ์ค๊ณํ๊ณ ๋ฉ์ค๋๋ฅผ ์ ์ํ ํ ์ธ์คํด์ค๋ฅผ ํตํด์ ๋ฉ์๋๋ฅผ ํธ์ถํ ์ ์์ต๋๋ค. Kotlin์ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ๋ ์ง์ํ๊ณ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ๋ ์ง์ํ์ฌ ํด๋์ค๊น์ง ์์ฑํ ํ์์์ด ํจ์๋ง ๋ง๋ค์ด์ ์ฌ์ฉํ๋ ๊ฒ์ ์ง์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, Java์์ ํจ์ ์ ์ ์ ๋ด๋ถ ํ๋ผ๋ฏธํฐ๋ก ์ธํฐํ์ด์ค๊ฐ ํ์ํ ๊ฒฝ์ฐ์ ์ธํฐํ์ด์ค ๊ตฌํ์ฒด๋ฅผ ์ ์ํ ํ ๋์ ํ์ฌ ํธ์ถํด์ผ ํฉ๋๋ค. ํ์ง๋ง Kotlin ๊ฐ์ ๊ฒฝ์ฐ ํจ์ํ์ ์ง์ํ๊ธฐ ๋๋ฌธ์ ํ๋ผ๋ฏธํฐ์ ํจ์๊ฐ ๋ค์ด๊ฐ ์ ์๊ฒ ๋์ด ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด์ธ์๋ Kotlin์์๋ ํจ์ ์ฌ์ฉํ๊ธฐ์ ๋ณด๋ค ํธ๋ฆฌํ ๊ฐ๋ ๋ค์ด ์กด์ฌํฉ๋..
-
[Kotlin] Generic, Inner ํด๋์คAndroid/Kotlin 2021. 7. 7. 01:09
์ด ๊ธ์ "์ค์ฌ์ฑ์ Google ๊ณต์ ์ธ์ด Kotlin" ๊ฐ์๋ฅผ ๋ฃ๊ณ ๊ณต๋ถํ ๋ด์ฉ์ผ๋ก ์์ฑํ์์ต๋๋ค. Generic ํด๋์ค ํด๋์ค๋ฅผ ์ค๊ณํ ๋ ๊ฐ์ ์ญํ ์ ํ์ง๋ง ๋ด๋ถ์ ๋ณ์์ ํ์ ๋ง ๋ค๋ฅด๊ฒ ํ์ํ ๋๊ฐ ์์ต๋๋ค. Generic ํด๋์ค๋ฅผ ํ์ฉํ์ฌ ํด๋์ค ์์ฑ ์๊ฐ ์๋ ๊ฐ์ฒด๋ฅผ ์์ฑ์์ ํ์ ์ ์ง์ ํ ์ ์์ต๋๋ค. Generic์ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ ํ์ ์ ์ปดํ์ผ ํ์์ ์ ํ๊ธฐ ๋๋ฌธ์ ํด๋์ค๋ ๋ฉ์๋ ๋ด๋ถ์ ์ฌ์ฉ๋ ๋ฐ์ดํฐ์ ํ์ ์์ ์ฑ์ ๋์ผ ์ ์์ต๋๋ค. ๋ํ์ ์ธ ์๋ก Collection ๋ค์ ๋ชจ๋ Generice ํด๋์ค๋ก ์ ์๋์ด ์์ต๋๋ค. ๋ง์ผ Any ํด๋์ค๋ก ์บ์คํ ํด์ ์ฌ์ฉํ๋ค๋ฉด ๋ฒ๊ฑฐ๋กญ๊ณ ์๋ชป๋ ์บ์คํ ์ผ๋ก ๋ฐํ์์ ์ค๋ฅ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ์๊ธฐ ๋๋ฌธ์ Generic์ ์ฌ์ฉํ์ฌ์ผ ํฉ๋๋ค. class Array..