swift λ¬Έλ²•πŸ–€

[SWIFT] μ˜΅μ…”λ„ 체이닝(Optional Chaining)

eundeang 2023. 5. 10. 00:14

μ˜΅μ…”λ„μ΄λž€?

nil (λΉ„μ–΄μžˆλŠ”, nullκ³Ό 같은 κΈ°λŠ₯) 값을 담을 수 μžˆλŠ” νƒ€μž… 

 

μ˜΅μ…”λ„ 체이닝

μ˜΅μ…”λ„ νƒ€μž…μœΌλ‘œ μ„ μ–Έλœ 값에 μ ‘κ·Όν•΄μ„œ 속성, λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•  λ•Œ μ ‘κ·Όμ—°μ‚°μž(.) μ•žμ— ?(λ¬ΌμŒν‘œ)λ₯Ό λΆ™μ—¬μ•„ ν•œλ‹€

κ·œμΉ™

1) κ²°κ³ΌλŠ” 항상 μ˜΅μ…”λ„ νƒ€μž…μœΌλ‘œ λ¦¬ν„΄ν•œλ‹€.

2) μ˜΅μ…”λ„ νŽ˜μ΄λ‹ κ³Όμ •μ—μ„œ κ·Έ κ°’ 쀑 ν•˜λ‚˜λΌλ„ nil을 λ¦¬ν„΄ν•œλ‹€λ©΄, μ΄μ–΄μ§€λŠ” ν‘œν˜„μ‹μ„ ν‰κ°€ν•˜μ§€ μ•Šκ³  nil을 λ¦¬ν„΄ν•œλ‹€.

3) μ ‘κ·Ό μ—°μ‚°μžμ˜ μ ‘κ·Ό μ—°μ‚°μž λ˜ν•œ optionalνƒ€μž…μ΄λΌλ©΄ 맨 λ§ˆμ§€λ§‰μ˜ μ ‘κ·Ό μ—°μ‚°μžμ—λŠ” ?λ₯Ό μ•ˆλΆ™μΈλ‹€.

 

ν•¨μˆ˜ νƒ€μž… λ˜ν•œ μ˜΅μ…”λ„λ‘œ 선언이 κ°€λŠ₯ν•˜κΈ° λ•Œλ¬Έμ— ν•¨μˆ˜λ„ nil일 μˆ˜λ„ μžˆλ‹€.

λ”°λΌμ„œ

cat?.myMaster?()?.name

μ†Œκ΄„ν˜Έ μ•žκ³Ό λ’€ λͺ¨λ‘ ?κ°€ λΆ™λŠ” μ½”λ“œλ„ λ°œμƒν•  수 μžˆλ‹€

 

μ˜΅μ…”λ„λ‘œ 선언이 κ°€λŠ₯ν•œ λͺ¨λ“  νƒ€μž…λ“€μ€ μœ„μ™€ 같은 μ½”λ“œκ°€ λ°œμƒν•  수 μžˆλ‹€.