#1. μ½νλ¦°(Kotlin)?
- μλ° νλ«νΌμμ λμκ°λ μλ‘μ΄ νλ‘κ·Έλλ° μΈμ΄
- κ°κ²°, μ€μ©μ , μλ° μ½λμμ μνΈμ΄μ©μ± μ€μ
#2. μ£Όμ νΉμ±
λμ νλ«νΌ
- μλ², μλλ‘μ΄λ λ± μλ°κ° μ€νλλ λͺ¨λ κ³³
μ μ νμ μ§μ μΈμ΄
- μ μ νμ μ§μ μΈμ΄: νλ‘κ·Έλ¨ κ΅¬μ± μμμ νμ μ μ»΄νμΌ μμ μ μ μ μκ³ , νλλ λ©μλλ₯Ό μ¬μ©ν λλ§λ€ μ»΄νμΌλ¬κ° νμ μ κ²μ¦ν΄μ€λ€.
- λμ νμ μ§μ μΈμ΄: νμ κ³Ό κ΄κ³μμ΄ λͺ¨λ κ°μ λ³μμ λ£μ μ μκ³ , νλλ λ©μλ μ κ·Όμ λν κ²μ¦μ΄ μ€ν μμ μ μΌμ΄λλ€.
- μ μ νμ
μ§μ μ μ₯μ
- μ±λ₯: μ€ν μμ μ μ΄λ€ λ©μλλ₯Ό νΈμΆν μ§ μμλ΄λ κ³Όμ μ΄ νμμμ΄μ λΉ λ₯΄λ€.
- μ λ’°μ±: μ»΄νμΌλ¬κ° κ²μ¦νκΈ° λλ¬Έμ μ€ν μ μ€λ₯λ‘ μ€λλ κ°λ₯μ±μ΄ μ λ€.
- μ μ§ λ³΄μμ±: μ½λμμ λ€λ£¨λ κ°μ²΄κ° μ΄λ€ νμ μΈμ§ μ μ μκΈ° λλ¬Έμ, μ²μ 보λ μ½λλ₯Ό λ€λ£¨κΈ° μ½λ€.
- λꡬ μ§μ: 리ν©ν λ§μ΄ μμ νκ³ , λ μ νν μ½λ μμ± κΈ°λ₯μ μ 곡ν μ μμΌλ©° IDEμ λ€λ₯Έ μ§μ κΈ°λ₯λ λ μ λ§λ€ μ μλ€.
νμ μΆλ‘ (type inference)
μ½νλ¦°μ μ μ νμ μ§μ μΈμ΄μ΄μ§λ§, μλ°μ λ€λ₯΄κ² μ½νλ¦° μ»΄νμΌλ¬κ° λ¬Έλ§₯μΌλ‘λΆν° λ³μ νμ μ μλμΌλ‘ μ μΆν μ μκΈ° λλ¬Έμ νμ μ μΈμ μλ΅ν΄λ λλ€.
var x = 1
Nullable type μ 곡
μ»΄νμΌ μμ μ NullPointerException λ°μ κ°λ₯ μ¬λΆλ₯Ό κ²μ¬ν μ μλ€.
ν¨μ νμ μ§μ
#3. ν¨μν νλ‘κ·Έλλ°
ν¨μν νλ‘κ·Έλλ°μ ν΅μ¬
- first-class (μΌκΈ μλ―Ό) ν¨μ: ν¨μλ₯Ό μΌλ° κ°μ²λΌ λ€λ£° μ μλ€. ν¨μλ₯Ό λ³μμ μ μ₯ / μΈμλ‘ λ€λ₯Έ ν¨μμ μ λ¬ / ν¨μμμ μλ‘μ΄ ν¨μλ₯Ό λ°νν μ μλ€.
- immutability (λΆλ³μ±): ν¨μν νλ‘κ·Έλλ°μμλ λΆλ³ κ°μ²΄λ₯Ό μ¬μ©ν΄ νλ‘κ·Έλ¨μ μμ±νλ€.
- side effect (λΆμν¨κ³Ό) μμ: μ λ ₯μ΄ κ°μΌλ©΄ νμ κ°μ μΆλ ₯μ λ°ννκ³ , λ€λ₯Έ κ°μ²΄μ μνλ₯Ό λ³κ²½νμ§ μμΌλ©°, ν¨μ μΈλΆλ λ€λ₯Έ μΈλΆ νκ²½κ³Ό μνΈμμ©νμ§ μλ μμ ν¨μ(pure function)λ₯Ό μ¬μ©νλ€.
- ν¨μν νλ‘κ·Έλλ°μ μ₯μ
- κ°κ²°μ±: ν¨μλ₯Ό κ°μ²λΌ νμ©νλ©΄ λ κ°λ ₯ν μΆμνλ₯Ό ν μ μκ³ , λ°λΌμ μ½λ μ€λ³΅μ λ§μ μ μλ€.
- λ€μ€μ€λ λ μμ μ±: λΆλ³ λ°μ΄ν° ꡬ쑰λ₯Ό μ¬μ©νλ©΄ λ€μ€ μ€λ λ νκ²½μμ κ°μ λ°μ΄ν°λ₯Ό μ¬λ¬ μ€λ λκ° λ³κ²½ν μ μλ€.
- ν μ€νΈ μ©μ΄: side effectκ° μλ μμ ν¨μλ λ 립μ μΌλ‘ ν μ€νΈν μ μλ€.
μλ° 8 μ΄μ μ μλ°λ ν¨μν νλ‘κ·Έλλ°μ μ§μν μ μλ κΈ°λ₯μ΄ κ±°μ μμλ€.
μ½νλ¦°μ μ²μλΆν° ν¨μν μ€νμΌλ‘ νλ‘κ·Έλ¨μ 지 μ μκ² μ§μν΄μλ€. (κ°μ νμ§λ μλλ€.)
κ°μ²΄ μ§ν₯κ³Ό ν¨μν μ κ·Ό λ°©λ²μ ν¨κ» μ‘°ν©ν΄μ λ¬Έμ μ κ°μ₯ μ ν©ν λꡬλ₯Ό μ¬μ©νλ©΄ λλ€.
#4. μ½νλ¦°μ μ² ν
1. μ€μ©μ±
- μ½νλ¦°μ μ€μ©μ μΈ μΈμ΄λ€.
- IDE λꡬ μ§μλ νλΆνλ€.
2. κ°κ²°μ±
- κ°λ°μκ° μμ±νλ μ½λμμ μλ―Έμλ λΆλΆμ μ€μ΄κ³ , λΆμμ μΈ μμλ₯Ό μ€μ΄κΈ° μν΄ λ Έλ ₯νλ€.
- λ€μν νμ€ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ 곡νμ¬ λ°λ³΅λκ±°λ κΈΈμ΄μ§ μ μλ μ½λλ₯Ό λΌμ΄λΈλ¬λ¦¬ ν¨μ νΈμΆλ‘ λμΉν μ μλ€.
- λλ€λ₯Ό μ§μνκΈ° λλ¬Έμ μμ μ½λ λΈλ‘μ μ½κ² μ λ¬ν μ μλ€.
- μ½λκ° κ°κ²°νλ©΄ μ°λ λ° μκ°μ΄ λ κ±Έλ¦°λ€. -> μ½λ λ°λ μκ°μ΄ λ κ±Έλ¦°λ€.
3. μμ μ±
- Nullable type μ§μ
- νμ μΊμ€νΈ κ°νΈν
4. μνΈμ΄μ©μ±
- μλ° λ©μλ νΈμΆ, μλ° ν΄λμ€ μμ, μΈν°νμ΄μ€ ꡬν, μλ° μ λ Έν μ΄μ μ¬μ© λ± λͺ¨λ κ°λ₯νλ€.
#5. μ½νλ¦° λΉλ κ³Όμ
'κ°λ° > Kotlin' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Kotlin In Action] 5. λλ€λ‘ νλ‘κ·Έλλ° (1) | 2021.05.29 |
---|---|
[Kotlin In Action] 4. ν΄λμ€, κ°μ²΄, μΈν°νμ΄μ€ (0) | 2021.05.19 |
[Kotlin In Action] 3. ν¨μ μ μμ νΈμΆ (0) | 2021.05.10 |
[Kotlin In Action] 2. μ½νλ¦° κΈ°μ΄ (0) | 2021.05.10 |
Kotlin constructor μ 리 (0) | 2021.04.08 |