Android

[Kotlin] λ³€μˆ˜μ™€ ν•¨μˆ˜ 1

Forest Yun 2021. 6. 18. 17:58
728x90

1. λ³€μˆ˜ μ„ μ–Έ 및 μ΄ˆκΈ°ν™”

​

1.1 λ³€μˆ˜ 선언법 val, var

​

val(value) Assgn-once(Ready-only), λ³€κ²½λΆˆκ°€λŠ₯ν•œ λ³€μˆ˜
var(variable) Mutable, λ³€κ²½κ°€λŠ₯ν•œ λ³€μˆ˜

​

λ³€μˆ˜ 선언법

​

​

​

1.2 λ³€μˆ˜ μ΄ˆκΈ°ν™”

μ½”ν‹€λ¦°μ—μ„œ λ³€μˆ˜ 선언은 μ΅œμƒμœ„(클래슀 μ™ΈλΆ€), 클래슀 λ‚΄λΆ€, ν•¨μˆ˜ 내뢀에 ν•  수 μžˆλ‹€.

μ½”ν‹€λ¦° λ³€μˆ˜λŠ” μžλ™μœΌλ‘œ μ΄ˆκΈ°ν™”λ˜μ§€ μ•ŠμœΌλ―€λ‘œ μ½”λ“œμ—μ„œ 직접 μ΄ˆκΉƒκ°’μ„ λŒ€μž…μ— μ£Όμ–΄μ•Ό 이용이 κ°€λŠ₯ν•˜λ‹€.

​

속성 μ΄ˆκΈ°ν™”λ₯Ό μ—°κΈ°ν•΄ μ£ΌλŠ” λ°©λ²•μœΌλ‘œ lateinit μ˜ˆμ•½μ–΄κ°€ μžˆλ‹€. lateinit μ˜ˆμ•½μ–΄ μ‚¬μš© μ‹œ κ°€λŠ₯ν•œ 빨리 속성을 μ΄ˆκΈ°ν™”ν•΄μ•Ό ν•œλ‹€.

​

속성 μ΄ˆκΈ°ν™” μ—°κΈ°

​

​

1.3 null 이 될 수 μžˆλŠ” λ³€μˆ˜μ™€ null

μ½”ν‹€λ¦°μ—μ„œ null 값을 λŒ€μž…ν•˜λ €λ©΄ λͺ…μ‹œμ μœΌλ‘œ nullable λ³€μˆ˜λ‘œ μ„ μ–Έν•΄μ•Ό ν•œλ‹€. ? ν‚€μ›Œλ“œ μ‚¬μš©

​

null μ•ˆμ •μ„±(Safety) : null에 μ•ˆμ „ν•œ ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜κΈ° μœ„ν•œ 기법.

null 을 λŒ€μž…ν•  수 μžˆλŠ” λ³€μˆ˜μ™€ 그렇지 μ•Šμ€ λ³€μˆ˜μ˜ ꡬ뢄

​

nullable λ³€μˆ˜

​

​

1.4 μƒμˆ˜λ³€μˆ˜ μ„ μ–Έ const

​

μƒμˆ˜λ³€μˆ˜ : μ΄ˆκΉƒκ°’μ„ λ³€κ²½ν•˜μ§€ μ•Šκ³  κ·ΈλŒ€λ‘œ μ‚¬μš©ν•˜λŠ” λ³€μˆ˜

​

val 둜 μ„ μ–Έλœ λ³€μˆ˜μ™€ 의미λ₯Ό ν˜Όλˆν•  수 μžˆμ§€λ§Œ κ·Έ λ³€μˆ˜λŠ” μƒμˆ˜λ³€μˆ˜μ™€ λ‹€λ₯΄λ‹€.

val 둜 μ„ μ–Έν•œ λ³€μˆ˜μ˜ μ΄ˆκΉƒκ°’μ€ μ§μ ‘μ μœΌλ‘œ λ³€κ²½ν•  수 λŠ” μ—†μ§€λ§Œ, ν•΄λ‹Ή λ³€μˆ˜μ˜ get() ν•¨μˆ˜μ—μ„œ μ–΄λ–»κ²Œ μ²˜λ¦¬ν•˜λƒμ— 따라 λ‹€λ₯Έ 값이 λ‚˜μ˜€κ²Œ ν•  수 μžˆλ‹€. (μΆ”ν›„ 정리)

​

μƒμˆ˜ λ³€μˆ˜λŠ” const μ˜ˆμ•½μ–΄λ‘œ μ„ μ–Έκ°€λŠ₯ν•˜λ‹€. const μ˜ˆμ•½μ–΄λŠ” λͺ‡ 가지 쑰건이 μžˆλŠ”λ°,

val μ‚¬μš©

μ΅œμƒμœ„ 레벨(클래슀 μ™ΈλΆ€)둜 μ„ μ–Έν•˜κ±°λ‚˜ object 둜 μ„ μ–Έν•œ ν΄λž˜μŠ€μ—μ„œλ§Œ μ‚¬μš© κ°€λŠ₯ (클래슀, ν•¨μˆ˜ X)

​

2. ν•¨μˆ˜ μ‚¬μš©λ²•

2.1 ν•¨μˆ˜ μ„ μ–Έ fun

 

ν•¨μˆ˜ μ„ μ–Έ ν˜•μ‹

ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜λŠ” 무쑰건 val

λ°˜ν™˜κ²‚μ΄ 없을 λ•Œμ—λŠ” Unit을 λͺ…μ‹œ, μƒλž΅ κ°€λŠ₯

ν•¨μˆ˜ 내에 ν•¨μˆ˜ μ •μ˜ κ°€λŠ₯ (νŠΉμ • ν•¨μˆ˜ 내에 μ„ μ–Έλœ ν•¨μˆ˜λŠ” 지역 λ³€μˆ˜μ™€ λΉ„μŠ·ν•œ κ°œλ…μœΌλ‘œ μ‚¬μš©)

λ“±ν˜Έ = λ₯Ό μ‚¬μš©ν•˜μ—¬ 단일 ꡬ문으둜 ν•¨μˆ˜λ₯Ό μž‘μ„±ν•  수 μžˆλ‹€. (단일 ν‘œν˜„ ν•¨μˆ˜. single expression function)

단일 ν‘œν˜„ ν•¨μˆ˜

​

2.2 ν•¨μˆ˜ μ˜€λ²„λ‘œλ”©(overloading)

​

: 같은 μ΄λ¦„μ˜ ν•¨μˆ˜λ₯Ό λ§€κ°œλ³€μˆ˜ 뢀뢄을 λ‹€λ₯΄κ²Œ(κ°œμˆ˜λ‚˜ νƒ€μž…) ν•˜μ—¬ μ—¬λŸ¬ 개 μ •μ˜ν•˜λŠ” 기법을 μ΄μ•ΌκΈ°ν•œλ‹€.

​

ν•¨μˆ˜ μ˜€λ²„λ‘œλ”©

​

​

​

​

κ³΅λΆ€ν•œ ꡐ재 - 'κΉ‘μƒ˜μ˜ μ½”ν‹€λ¦° ν”„λ‘œκ·Έλž˜λ°'

Android Developers - developer.android.com/kotlin/common-patterns?hl=ko

728x90