ν‹°μŠ€ν† λ¦¬ λ·°

iOS

Swift) μ‚Όν•­μ—°μ‚°μž

hyun99999 2021. 11. 24. 16:21
728x90
λ°˜μ‘ν˜•

πŸ‘ μ‚Όν•­μ—°μ‚°μž

μ‚Ό...ν•­?? μ™“μ΄μ¦ˆ μ‚Όν•­μ“°?

  • 단항 μ—°μ‚°μž : -a , !b , c! 와 같이 λŒ€μƒμ˜ λ°”λ‘œ μ•žμ΄λ‚˜ 뒀에 λΆ™μ—¬ μ‚¬μš©ν•˜λŠ” μ—°μ‚°μž
  • 이항 μ—°μ‚°μž : 2 + 3 κ³Ό 같이 두 개의 λŒ€μƒμ˜ 사이에 μžˆλŠ” μ—°μ‚°μž
  • μ‚Όν•­ μ—°μ‚°μž : a ? b : c 와 같은 ν˜•νƒœμ˜ 쑰건뢀 μ—°μ‚°μž (Swiftμ—μ„œ μ‚Όν•­ μ—°μ‚°μžλŠ” 이 μ—°μ‚°μž ν•˜λ‚˜ λΏμž…λ‹ˆλ‹€)

자 그러면 μ‚Όν•­μ—°μ‚°μžλ₯Ό μ–΄λ–»κ²Œ μ‚¬μš©ν•˜λŠλƒ!

μ§€λ‚˜κ°€λ‹€κ°€ λ‹€μŒκ³Ό 같은 사망...μ‚Όν•­μ—°μ‚°μžμ˜ μ‚¬μš©μ„ 보신적이 μžˆμ„κ±°μ—μš”!

let a = b > 10 ? true : false
// b κ°€ 10 보닀 크면 a 에 true ν• λ‹Ή.
// b κ°€ 10 보닀 μž‘μœΌλ©΄ a 에 false ν• λ‹Ή.
쑰건 ? ν‘œν˜„μ‹ A : ν‘œν˜„μ‹ B

λ‹€μŒκ³Ό 같이 μ‚¬μš©λ˜λŠ”λ°μš”. : λ₯Ό κΈ°μ€€μœΌλ‘œ μ™Όμͺ½μ€ 참일 경우, 였λ₯Έμͺ½μ€ 거짓일 경우λ₯Ό μ‹€ν–‰ν•˜κ²Œ λ©λ‹ˆλ‹€.

μ–Έμ œ μ‚¬μš©λ κΉŒμš”?

두 κ²°κ³Ό 쀑 ν•˜λ‚˜λ₯Ό 선택해야할 λ•Œ κ°„κ²°ν•˜κ²Œ μ‚¬μš©κ°€λŠ₯ν•΄μš”!

μœ„μ˜ μ½”λ“œλ₯Ό 쑰건문을 ν™œμš©ν•΄μ„œ ν‘œν˜„ν•˜λ©΄ λ‹€μŒκ³Ό 같이 ν‘œν˜„μ΄ λ˜μš”!

if b > 10 {
    a = true
} else {
    a = false
}

μž₯점

if 쑰건문은 가독성을 μœ„ν•΄μ„œ 블둝을 λ‹€μŒκ³Ό 같이 μ‚¬μš©ν•©λ‹ˆλ‹€.

if ... {
    // ...
} else if {
    // ...
}

그런데 μ‚Όν•­ μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜λ©΄ ν•œμ€„μ— 쑰건문에 λŒ€ν•œ μ°Έ,거짓일 경우λ₯Ό κ°„κ²°ν•˜κ²Œ ν‘œν˜„ν•  수 있죠!

단점

ν‘œν˜„μ‹μ΄ κΈΈμ–΄μ§ˆμˆ˜λ‘ 였히렀 더 지저뢄해지고 가독성이 λ–¨μ–΄μ Έμš”!

if - else ꡬ문만 μ‚¬μš©κ°€λŠ₯ν•˜λ‹€. 즉, λ‹€μ–‘ν•œ 쑰건에 λŒ€μ‘ν•˜μ§€ λͺ»ν•˜λŠ” 뢀뢄이 μžˆμ–΄μš”!

πŸ‘ Nil-Coalescing Operator(nil 병합 μ—°μ‚°μž)

nil λ³‘ν•©μ—°μ‚°μžλŠ” a ?? b ν˜•μ‹μ„ κ°–λŠ” μ—°μ‚°μžμž…λ‹ˆλ‹€

a κ°€ nil 이 μ•„λ‹κ²½μš°μ— a λ₯Ό λ°˜ν™˜ν•˜κ³  nil 일 κ²½μš°μ— b λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€!

이 nil 병합 μ—°μ‚°μžλ„ μ‚Όν•­μ—°μ‚°μžμ˜ μΆ•μ•½ν˜•μ΄λΌλŠ” 사싀!

// μ‚Όν•­ μ—°μ‚°μž
a != nil ? a! : b

// nil 병합 μ—°μ‚°μž
a ?? b
728x90
λ°˜μ‘ν˜•
λŒ“κΈ€
μ΅œκ·Όμ— 올라온 κΈ€
μ΅œκ·Όμ— 달린 λŒ“κΈ€
κΈ€ 보관함
Β«   2024/05   Β»
일 μ›” ν™” 수 λͺ© 금 ν† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
링크
Total
Today
Yesterday