-
[๐ ์ดํํฐ๋ธ ์ฝํ๋ฆฐ] 2 ๊ฐ๋ ์ฑBook/Effective Kotlin 2023. 6. 6. 00:09๋ฐ์ํ
๐ item 11 ๊ฐ๋ ์ฑ์ ๋ชฉํ๋ก ์ค๊ณํ๋ผ
<ํด๋ฆฐ ์ฝ๋> ๊ฐ๋ฐ์๊ฐ ์ฝ๋๋ฅผ ์์ฑํ๋๋ฐ๋ 1๋ถ ๊ฑธ๋ฆฌ์ง๋ง, ์ด๋ฅผ ์ฝ๋ ๋ฐ๋ 10๋ถ์ด ๊ฑธ๋ฆฐ๋ค.
์๋ จ๋ ๊ฐ๋ฐ์๋ง์ ์ํ ์ฝ๋๋ ์ข์ ์ฝ๋๊ฐ ์๋๋ค.
๐ item 12 ์ฐ์ฐ์ ์ค๋ฒ๋ก๋ ํ ๋๋ ์๋ฏธ์ ๋ง๊ฒ ์ฌ์ฉํ๋ผ
์ฐ์ฐ์ ์ค๋ฒ๋ก๋ ํ ๋๋ ์๋ฏธ์ ๋ง๊ฒ ์ฌ์ฉํด์ผ ํ๋ค.
๊ผญ ์ฐ์ฐ์ ๊ฐ์ ํํ๋ก ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด infix ํ์ฅ ํจ๋ ๋๋ ํฑ๋ ๋ฒจ ํจ์ ํ์ฉํด๋ผ.
- infix ๋?
3.add(5)์ ๊ฐ์ด ํธ์ถ ํ ์๋ ์๊ณ , infix๋ฅผ ๋ถ์ด ์๋ ๊ฒ๋ง์ผ๋ก 3 add 5์ ๊ฐ์ด ์ค๊ฐ ๊ธฐ๋ฒ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ๋ ๊ฐ๋ฅinfix fun Int.add(x: Int): Int { return this + x } fun main() { println(3.add(5)) // 8 println(3 add 5) // 8 }
๐ item 13 Unit? ์ ๋ฆฌํดํ์ง ๋ง๋ผ
Q) ํจ์์์ Unit? ์ ๋ฆฌํดํ๋ค๋ฉด, ๊ทธ ์ด์ ๋ ๋ฌด์์ผ๊น์?
Bollean ๊ณผ Unit? ํ์ ์ ์๋ก ๋ฐ๊ฟ์ ์ฌ์ฉํ ์ ์๋ค.
Q) ์ด๋ฐ ์ฝ๋๋ฅผ ์ฌ์ฉํด๋ ๊ด์ฐฎ์๊น์?
์๋์. ์ฝ๋๋ฅผ ์ฝ๊ฒ ์ฝ์ ์ ์๊ณ ์คํด๋ฅผ ๋ถ๋ฌ์ผ์ผํค๊ธฐ ์ฝ๋ค.
๐ item 14 ๋ณ์ ํ์ ์ด ๋ช ํํ์ง ์์ ๊ฒฝ์ฐ ํ์คํ๊ฒ ์ง์ ํ๋ผ
val data = getSomeData()
ํ์ ์ ์จ๊ธฐ๊ณ ์๋ค. > ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋ค.
val data: UserData = getSomeData()
๊ฐ๋ ์ฑ ํฅ์
ํ์ ์ ๊ฐ๋ฐ์์ ์ปดํ์ผ๋ฌ ๋ชจ๋์๊ฒ ์ค์ํ ์ ๋ณด์ด๋ค.
์ถ๋ก ์์คํ ์ ์ํฉ์ ๋ง๊ฒ ์ฌ์ฉํ์!
๐ item 15 ๋ฆฌ์๋ฒ๋ฅผ ๋ช ์์ ์ผ๋ก ์ฐธ์กฐํ๋ผ
์ฌ๋ฌ๊ฐ์ ๋ฆฌ์๋ฒ๊ฐ ์๋ ์ํฉ ๋ฑ์์๋ ๋ฆฌ์๋ฒ๋ฅผ ๋ช ์์ ์ผ๋ก ์ ์ด์ฃผ๋ ๊ฒ์ด ์ข๋ค.
2023.05.28 - [kotlin] - [Kotlin] Scope Function : apply, run, with, also, let ์ ๋ฆฌ
๐ item 16 ํ๋กํผํฐ๋ ๋์์ด ์๋๋ผ ์ํ๋ฅผ ๋ํ๋ด์ผ ํ๋ค.
ํ๋กํผํฐ ๋์ ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ ๊ฒฝ์ฐ
- ์ฐ์ฐ ๋น์ฉ์ด ๋๊ฑฐ๋ ๋ณต์ก๋๊ฐ O(1) ๋ณด๋ค ํฐ ๊ฒฝ์ฐ
- ๋น์ฆ๋์ค ๋ก์ง์ ํฌํจํ๋ ๊ฒฝ์ฐ
- ๊ฒฐ์ ์ ์ด์ง ์์ ๊ฒฝ์ฐ
- ๋ณํ์ ๊ฒฝ์ฐ
- ๊ฒํฐ์์ ํ๋กํผํฐ์ ์ํ ๋ณ๊ฒฝ์ด ์ผ์ด๋์ผํ๋ ๊ฒฝ์ฐ
๋ฐ๋๋ก ์ํ๋ฅผ ์ถ์ถ/์ค์ ํ ๋๋ ํ๋กํผํฐ๋ฅผ ์ฌ์ฉํด์ผํ๋ค. ํน๋ณํ ์ด์ ๊ฐ ์๋ค๋ฉด ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ์๋๋ค.
ํ๋กํผํฐ - ์ํ ์งํฉ
ํจ์ - ํ๋
๐ item 17 ์ด๋ฆ ์๋ ์๊ท๋จผํธ๋ฅผ ์ฌ์ฉํ๋ผ
val text = (1..10).joinToString("|") // ์๊ท๋จผํธ ์ฌ์ฉ val text = (1..10).joinToString(separator = "|")
์ฅ์
- ์ด๋ฆ์ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ์ด ๋ฌด์์ ํ๋๋ด๋์ง ์ ์ ์๋ค.
- ํ๋ผ๋ฏธํฐ ์ ๋ ฅ ์์์ ์๊ด ์์ผ๋ฏ๋ก ์์ ํ๋ค
์ถ์ฒํ๋ ๊ฒฝ์ฐ
- ๋ํดํธ ์๊ท๋จผํธ
- ๊ฐ์ ํ์ ์ ํ๋ผ๋ฏธํฐ๊ฐ ๋ง์ ๊ฒฝ์ฐ
- ํจ์ ํ์ ์ ํ๋ผ๋ฏธํฐ๊ฐ ์๋ ๊ฒฝ์ฐ
๐ item 18 ์ฝ๋ฉ ์ปจ๋ฒค์ ์ ์ง์ผ๋ผ
๋ฐ์ํ'Book > Effective Kotlin' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๐ ์ดํํฐ๋ธ ์ฝํ๋ฆฐ] 4 ์ถ์ํ (0) 2023.07.04 [๐ ์ดํํฐ๋ธ ์ฝํ๋ฆฐ] 3 ์ฌ์ฌ์ฉ์ฑ (0) 2023.06.12 [๐ ์ดํํฐ๋ธ ์ฝํ๋ฆฐ] 1 ์์ ์ฑ (3) 2023.06.06 - infix ๋?