λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

3️⃣ Swift130

[Swift] ν”„λ‘œνΌν‹° κ°œλ… 정리 (2); μ—°μ‚° ν”„λ‘œνΌν‹° μ €λ²ˆ μ €μž₯ ν”„λ‘œνΌν‹° ν¬μŠ€νŒ…μ— μ΄μ–΄μ„œ μ˜€λŠ˜μ€ μ—°μ‚° ν”„λ‘œνΌν‹°μ— λŒ€ν•΄ μ •λ¦¬ν•˜λ €κ³  ν•œλ‹€,, μ €μž₯ ν”„λ‘œνΌν‹°λŠ” λ³€μˆ˜, μƒμˆ˜μ— λŒ€ν•œ κ°œλ…μœΌλ‘œ κ·Έλ‚˜λ§ˆ μ‰¬μš΄? νŽΈμ΄μ—ˆλŠ”λ° μ—°μ‚° ν”„λ‘œνΌν‹°λŠ” 비ꡐ적 μ–΄λ €μ› λ‹Ή. 같이 κ³΅λΆ€ν•΄λ³΄μŸˆ.. πŸ“Ž μ—°μ‚° ν”„λ‘œνΌν‹° (Computed Properties) 값을 μ €μž₯ν•˜λŠ” μ €μž₯ ν”„λ‘œνΌν‹°μ™€ 달리 μ—°μ‚° ν”„λ‘œνΌν‹°λŠ” 값을 μ €μž₯ν•˜λŠ” 곡간이 μ—†λ‹€. λ”°λΌμ„œ λ‹€λ₯Έ μ €μž₯ ν”„λ‘œνΌν‹°λ₯Ό κ°€μ Έμ™€μ„œ 연산을 ν•˜κ³  μ μ ˆν•œ 값을 λŒλ €μ£ΌλŠ” 역할을 ν•œλ‹€. ꡬ쑰체, 클래슀, μ—΄κ±°ν˜• λͺ¨λ‘μ—μ„œ μ‚¬μš© κ°€λŠ₯ν•˜κ³  μ ‘κ·Όμž(getter), μ„€μ •μž(setter)κ°€ ν•„μš”ν•˜λ‹€. μ–΄λ– ν•œ 값을 가지고 μ—°μ‚°, λ°˜ν™˜ν•œλ‹€λŠ” λΆ€λΆ„μ—μ„œ λ©”μ„œλ“œμ™€ λΉ„μŠ·ν•˜λ‹€λŠ” 것을 μ•Œ 수 μžˆλŠ”λ° λ©”μ„œλ“œ λŒ€μ‹  이 μ—°μ‚° ν”„λ‘œνΌν‹°λ₯Ό μ‚¬μš©ν•˜λŠ” 점을 μ•Œμ•„λ³΄λ©΄, 1) λ©”μ„œλ“œμ˜ 경우 μœ„μ—μ„œ λ§ν•œ .. 2021. 9. 22.
[Swift] ν”„λ‘œνΌν‹° κ°œλ… 정리 (1); μ €μž₯ ν”„λ‘œνΌν‹° ν”„λ‘œνΌν‹°λΌκ³  ν•˜λ©΄ ν΄λž˜μŠ€λ‚˜ κ΅¬μ‘°μ²΄μ—μ„œ μ“°λŠ” λ³€μˆ˜, μƒμˆ˜,,? 기본적인 κ°œλ…μ΄μ§€λ§Œ μ •ν™•νžˆ μ„€λͺ…ν•˜κΈ° μ–΄λ ΅λ‹€.γ…œ 좔석을 λ§žμ•„ 이런 κ°œλ…λ“€μ„ νƒ„νƒ„νžˆν•˜κ³  λ„˜μ–΄κ°€λ €ν•œλ‹€.πŸ‘©πŸ»‍πŸ’» ν”„λ‘œνΌν‹°λŠ” 클래슀, ꡬ쑰체, μ—΄κ±°ν˜• 등에 κ΄€λ ¨λœ 값을 λœ»ν•˜κ³ , κ·Έ μ’…λ₯˜λŠ” μ €μž₯ ν”„λ‘œνΌν‹°, μ—°μ‚° ν”„λ‘œνΌν‹°, νƒ€μž… ν”„λ‘œνΌν‹°λ‘œ 크게 λ‚˜λˆŒ 수 μžˆλ‹€. πŸ“Ž μ €μž₯ ν”„λ‘œνΌν‹° (Stored Properties) μ €μž₯ ν”„λ‘œνΌν‹°λŠ” ν΄λž˜μŠ€λ‚˜ κ΅¬μ‘°μ²΄μ—μ„œ λ³€μˆ˜λ‚˜ μƒμˆ˜λ₯Ό μ €μž₯ν•˜λŠ” κ°€μž₯ λ‹¨μˆœν•œ ν”„λ‘œνΌν‹°μ΄λ‹€. πŸ“Œ μ €μž₯ ν”„λ‘œνΌν‹°μ˜ κΈ°λ³Έ ν˜•νƒœ κ°€μž₯ 기본적인 ν˜•νƒœμ˜ μ €μž₯ ν”„λ‘œνΌν‹° μ‚¬μš© 방법을 μ½”λ“œλ‘œ μž‘μ„±ν–ˆλ‹€. struct Info1_sp { let name: String = "섀희" // μƒμˆ˜ μ €μž₯ ν”„λ‘œνΌν‹° var age: Int = 0 // λ³€μˆ˜ μ €μž₯ ν”„λ‘œνΌν‹° } clas.. 2021. 9. 22.
[Swift] ν΄λ‘œμ €λ₯Ό μ‚¬μš©ν•˜λŠ” 이유, κ°’ 캑쳐(Capturing Value) ν΄λ‘œμ €λŠ” μŠ€μœ„ν”„νŠΈμ—μ„œ 기본적인 κ°œλ…μ΄μ§€λ§Œ,, 정말 μ–΄λ €μš΄ κ°œλ…μ΄κΈ°λ„ ν•˜λ‹€. 이전 κΈ€μ—μ„œ ν΄λ‘œμ €μ˜ 기초적인 λ‚΄μš©μ— λŒ€ν•΄ λ‹€λ€˜λŠ”λ°, μ˜€λŠ˜μ€ ν΄λ‘œμ €λ₯Ό μ‚¬μš©ν•˜λŠ” μ΄μœ μ™€ μ €λ²ˆ κΈ€μ—μ„œλŠ” 닀루지 λͺ»ν•œ κ°’ 캑쳐에 λŒ€ν•΄ 정리해보렀고 ν•œλ‹€. πŸ“Ž ν΄λ‘œμ € μ‚¬μš© λͺ©μ  ν΄λ‘œμ €λŠ” μ½”λ“œλ₯Ό 효율적으둜 μž‘μ„±ν•˜λŠ”λ°μ— 큰 도움을 μ€€λ‹€. ν΄λ‘œμ €λ₯Ό μ‚¬μš©ν•˜λŠ” λ°μ—λŠ” μ•„μ£Ό λ‹€μ–‘ν•œ λͺ©μ μ΄ μžˆκ² μ§€λ§Œ, κ·Έ μ€‘μ—μ„œλ„ κ°€μž₯ μ€‘μš”ν•˜κ³ , 많이 μ“°μ΄λŠ” 뢀뢄이 μžˆλ‹€. #1 higher order function μΈν’‹μœΌλ‘œ ν•¨μˆ˜λ₯Ό 받을 수 μžˆλŠ” ν•¨μˆ˜λ₯Ό λœ»ν•œλ‹€. λ°”λ‘œ κ³ μ°¨ν•¨μˆ˜,!! μΈν’‹μœΌλ‘œ 쀄 ν•¨μˆ˜λ₯Ό λ”°λ‘œ λ§Œλ“€μ–΄ μ‚¬μš©ν•  μˆ˜λ„ μžˆμ§€λ§Œ, κ³ μ°¨ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” κ·Έ μžλ¦¬μ—μ„œ λ°”λ‘œ ν΄λ‘œμ €λ‘œ λ§Œλ“€μ–΄ 인풋을 쀄 μˆ˜λ„ μžˆλ‹€. 이 λ•Œ ν΄λ‘œμ €λ₯Ό 많이 μ‚¬μš©ν•˜κ²Œ λœλ‹€. #2 completi.. 2021. 9. 11.
[Swift] guard / if (feat. μ˜΅μ…”λ„ 바인딩) μŠ€μœ„ν”„νŠΈμ—λŠ” if와 λΉ„μŠ·ν•œ 역할을 ν•˜λŠ” guardλΌλŠ” 것이 μ‘΄μž¬ν•œλ‹€,,! μ§€κΈˆκΉŒμ§€λŠ” guardλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•  ν•„μš”μ„±μ„ λŠλΌμ§€ λͺ»ν•΄ κ³΅λΆ€ν•˜μ§€ μ•Šμ•˜λŠ”λ°, μ΄μœ μ—†λŠ” ꡬ문이 μ‘΄μž¬ν• λ¦¬λŠ” μ—†λ‹€. μ˜€λŠ˜μ€ μ˜΅μ…”λ„ 바인딩에 λŒ€ν•΄ 깊이있게 곡뢀해보닀가 guard ꡬ문의 쒋은 츑면을 μ•Œκ²Œ λ˜μ–΄ guardκ°€ 무엇인지, μ–Έμ œ μ‚¬μš©ν•΄μ•Ό 할지, ifμ™€λŠ” μ–΄λ–€ 차이점이 μžˆλŠ”μ§€ 등을 μ•Œμ•„λ³΄λ €ν•œλ‹€. πŸ“Ž guard guardλŠ” 'λΉ λ₯Έ μ’…λ£Œ'의 핡심 ν‚€μ›Œλ“œμ΄λ‹€. if ꡬ문은 "~λ©΄ ~해라!" λΌλŠ” μ˜λ―Έμ΄μ§€λ§Œ, guard ꡬ문은 "~μ•„λ‹ˆλ©΄ 끝내라!" λΌλŠ” 의미이기 λ•Œλ¬Έμ΄λ‹€. μš°μ„  guard ꡬ문의 κΈ°λ³Έ ν˜•νƒœλ₯Ό 보자. // ν•¨μˆ˜λ‚˜ λ©”μ„œλ“œ, 반볡문 λ“± 블둝 내뢀에 μ„ μ–Έ guard (Bool νƒ€μž… κ°’) else { (μ˜ˆμ™Έμ‚¬ν•­ μ‹€ν–‰λ¬Έ) (μ œμ–΄λ¬Έ μ „.. 2021. 9. 6.
[Swift] inout νŒŒλΌλ―Έν„° μ§€κΈˆκΉŒμ§€λŠ” swift ν•¨μˆ˜μ—μ„œ λ°›μ•„μ˜€λŠ” μΈμžκ°’μ€ μƒμˆ˜λ‘œ μ“°μΈλ‹€λŠ” 점만 μΈμ§€ν•˜κ³  κ°’μ˜ 변경이 ν•„μš”ν•  λ•ŒλŠ” ν•¨μˆ˜ μ•ˆμ— λ³€μˆ˜λ‘œ λ‹€μ‹œ μ„ μ–Έν•˜μ—¬ 연산을 ν•΄μ£Όμ—ˆλ‹€. ν•˜μ§€λ§Œ μ˜€λŠ˜μ—μ„œμ•Ό,, μ΄λŸ¬ν•œ 문제λ₯Ό κ°„νŽΈν•˜κ²Œ ν•΄κ²°ν•  수 μžˆλ‹€λŠ” 것을 κΉ¨λ‹«κ³ , 글을 μž‘μ„±ν•œλ‹€. πŸ“Ž inout νŒŒλΌλ―Έν„° μŠ€μœ„ν”„νŠΈ μ‚¬μš©μžλΌλ©΄ λͺ¨λ‘ μ•Œλ§Œν•œ μ‚¬μ‹€μ΄μ§€λ§Œ C, Java λ“± λ‹€λ₯Έ μ–Έμ–΄λ“€κ³Ό 달리 μŠ€μœ„ν”„νŠΈλŠ” ν•¨μˆ˜κ°€ μƒμˆ˜ ν˜•νƒœλ‘œ 인자λ₯Ό λ°›μ•„μ˜¨λ‹€. λ”°λΌμ„œ ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ μΈμžκ°’μ„ λ³€κ²½ν•˜λ €κ³  ν•˜λ©΄ 였λ₯˜κ°€ λ°œμƒν•œλ‹€. μœ„μ™€ 같이 n이 let μƒμˆ˜μ΄λ©° mutable ν•˜μ§€ μ•Šλ‹€κ³  였λ₯˜κ°€ λ°œμƒν•˜λŠ” 것을 확인할 수 μžˆλ‹€. μ΄λ ‡κ²Œ ν•¨μˆ˜ μ•ˆμ—μ„œ λ‚΄κ°€ μ›ν•˜λŠ” λ³€μˆ˜ 자체의 값을 λ³€κ²½ν•΄μ£Όκ³ μž ν•  λ•Œ! λ°”λ‘œ inout νŒŒλΌλ―Έν„°λ₯Ό μ‚¬μš©ν•΄μ£Όλ©΄ λœλ‹€. inout νŒŒλΌλ―Έν„°λ₯Ό μ‚¬μš©ν•˜μ—¬ va.. 2021. 9. 5.