Swift - ν•¨μˆ˜

2022. 6. 27. 14:39ㆍios

swift - ν•¨μˆ˜

 

 

μ•ˆλ…•ν•˜μ„Έμš”. μ˜€λŠ˜μ€ swift의 ν•¨μˆ˜μ— λŒ€ν•΄μ„œ μ•Œμ•„λ³΄λ €κ³  ν•©λ‹ˆλ‹€.

 

ν”„λ‘œκ·Έλž˜λ°μ—μ„œ ν•¨μˆ˜λŠ” "μ–΄λ–€ κΈ°λŠ₯을 μˆ˜ν–‰ν•˜κΈ° μœ„ν•œ μ½”λ“œμ˜ λͺ¨μŒ"이라고 μ •μ˜ν•  수 μžˆλŠ”λ°μš”, λ‹€μŒ μ˜ˆμ‹œλ₯Ό μ‚΄νŽ΄λ΄…μ‹œλ‹€.

 

 

ν•¨μˆ˜λŠ” 선언뢀와 ν˜ΈμΆœλΆ€λ‘œ λ‚˜λ‰˜κ²Œ λ©λ‹ˆλ‹€.

func ν•¨μˆ˜μ΄λ¦„() { }의 ν˜•νƒœλŠ” μ„ μ–ΈλΆ€, ν•¨μˆ˜μ΄λ¦„()의 ν˜•νƒœλŠ” ν˜ΈμΆœλΆ€μž…λ‹ˆλ‹€.

 

 

일반적으둜 μ½”λ“œλŠ” 순차적으둜 싀행이 되기 λ•Œλ¬Έμ— μœ„μ™€κ°™μ΄ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λŠ” 것이 μ•„λ‹ˆλΌλ©΄ printλ¬Έμž₯을 두 λ²ˆμ¨μ•Ό μ˜λ„ν•˜λŠ”λŒ€λ‘œ 좜λ ₯이 될 κ²ƒμž…λ‹ˆλ‹€. μ—¬κΈ°μ„œ μ€‘μš”ν•œ 것은 μš°λ¦¬λŠ” ν•¨μˆ˜λ₯Ό μ •μ˜ν•¨μœΌλ‘œμ¨ 이 ν•¨μˆ˜λ₯Ό "ν•œλ²ˆλ§Œ ν˜ΈμΆœν•΄λ„" λ‘κ°œμ˜ ν”„λ¦°νŠΈ ν•¨μˆ˜κ°€ ν˜ΈμΆœλ˜λŠ” 것을 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. 

 

 

이λ₯Ό ν”„λ‘œκ·Έλž˜λ¨Έλ“€μ€ "μž¬μ‚¬μš©μ΄ κ°€λŠ₯ν•œ μ½”λ“œ"라고 λΆ€λ¦…λ‹ˆλ‹€.

 

νŒŒλΌλ―Έν„°, μ•„κ·œλ¨ΌνŠΈ

 

μœ„μ˜ μ˜ˆμ‹œμ½”λ“œμ—μ„œλŠ” νŒŒλΌλ―Έν„°κ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

그럼 νŒŒλΌλ―Έν„°λŠ” 무엇이고 μ™œ μ‚¬μš©ν• κΉŒμš”?

 

νŒŒλΌλ―Έν„°λŠ” λ§€κ°œλ³€μˆ˜μ™€ λ™μ˜μ–΄λ‘œ "μž…λ ₯ κ°’"으둜 λ°›λŠ” κ°’μž…λ‹ˆλ‹€.

 

 

μœ„ μ½”λ“œμ—μ„œ μ„ μ–ΈλΆ€μ˜ num을 νŒŒλΌλ―Έν„°λΌκ³  λΆ€λ¦…λ‹ˆλ‹€.

그럼 ν˜ΈμΆœλΆ€μ—μ„œμ˜ num도 νŒŒλΌλ―Έν„°λΌκ³  λΆ€λ₯΄λŠ” κ±ΈκΉŒμš”? 

 

ν˜ΈμΆœλΆ€μ—μ„œμ˜ num은 μ•„κ·œλ¨ΌνŠΈ(인수)라고 λΆ€λ¦…λ‹ˆλ‹€.

이런 μš©μ–΄λ“€μ„ 처음 ν•™μŠ΅ν• λ•ŒλŠ” μ΅μˆ™ν•˜μ§€ μ•Šμ§€λ§Œ ν”„λ‘œκ·Έλž˜λ°μ„ ν•˜λ‹€λ³΄λ©΄ μ—¬λŸ¬ 글도 읽고, κ·œμΉ™μ„ μ •ν™•ν•˜κ²Œ μ΄ν•΄ν•˜κΈ° μœ„ν•΄μ„œλŠ” ν™•μ‹€νžˆ μ•Œκ³ κ°€λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€. 

 

μœ„μ˜ ν˜•νƒœλŠ” μž…λ ₯을 λ°›μ•„ print에 μž…λ ₯값을 λ°˜μ˜ν•΄μ„œ ν˜ΈμΆœν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

 

그럼 이 ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•¨μœΌλ‘œμ¨ μš°λ¦¬λŠ” 결과값을 λ°›κ³  μžˆμ„κΉŒμš”? 

 

μ•„λ‹™λ‹ˆλ‹€. doSomethingμ΄λΌλŠ” ν•¨μˆ˜λŠ” 호좜만되고 값을 λ°›λŠ” 뢀뢄은 보여지지 μ•ŠμŠ΅λ‹ˆλ‹€. 

(printλŠ” μž…μΆœλ ₯에 κ΄€ν•œ κ°’μœΌλ‘œ 값을 λ°˜ν™˜ν•˜λŠ” 것이 μ•„λ‹˜μ„ μ•Œκ³  μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.)

 

 

리턴값이 μžˆλŠ” ν•¨μˆ˜

 

λͺ» 보던 "->" ν‘œμ‹œκ°€ μƒκ²ΌμŠ΅λ‹ˆλ‹€. μ΄λŠ” λ¦¬ν„΄κ°’μ˜ νƒ€μž…μ„ μ˜λ―Έν•©λ‹ˆλ‹€. 

ν•¨μˆ˜μ—μ„œ 값을 λ¦¬ν„΄ν•˜κΈ° μœ„ν•΄μ„  이 νƒ€μž…μ΄ 사전에 μ •μ˜λ˜μ–΄μ•Ό μžˆμ–΄μ•Ό ν•˜λ©° returnν‚€μ›Œλ“œλ₯Ό ν†΅ν•΄μ„œ 결과값을 내보낼 수 μžˆμŠ΅λ‹ˆλ‹€.

 

 

μ•„κ·œλ¨ΌνŠΈ λ ˆμ΄λΈ”

μœ„μ—μ„œ ν˜ΈμΆœλΆ€μ— μ „λ‹¬ν•΄μ£ΌλŠ” 값을 μ•„κ·œλ¨ΌνŠΈλΌκ³  ν•™μŠ΅ν–ˆμŠ΅λ‹ˆλ‹€.

그럼 μ•„κ·œλ¨ΌνŠΈ λ ˆμ΄λΈ”μ€ λ¬΄μ—‡μΌκΉŒμš”?

 

 

aνŒŒλΌλ―Έν„° μ•žμ— μ²˜μŒλ³΄λŠ” 이름이 μƒκ²ΌμŠ΅λ‹ˆλ‹€. ν•¨μˆ˜μ—μ„œλŠ” 이λ₯Ό μ•„κ·œλ¨ΌνŠΈ λ ˆμ΄λΈ”μ΄λΌκ³  λΆ€λ₯΄λŠ”λ°μš”, ν˜ΈμΆœλΆ€μ—μ„œμ˜ μ•„κ·œλ¨ΌνŠΈμ΄λ¦„κ³Ό λ™μΌν•΄λ³΄μž…λ‹ˆλ‹€. 

 

그럼 이 μ•„κ·œλ¨ΌνŠΈ λ ˆμ΄λΈ”μ€ μ™œ μ‚¬μš©ν•˜λŠ” κ±ΈκΉŒμš”?

 

κ·Έ μ΄μœ λŠ” ν˜ΈμΆœλΆ€μ—μ„œ ν•¨μˆ˜μ˜ 역할을 μ•Œμ•„λ³΄κΈ° μ‰½κ²Œ λ§Œλ“€κΈ° μœ„ν•œ μ΄μœ μ™€, μ‹€μ œ μ„ μ–ΈλΆ€μ—μ„œλŠ” λ„ˆλ¬΄ κΈ΄ κΈ€μžλ₯Ό λŒ€μ²΄λ‘œ 짧은 λ³€μˆ˜λ‘œ μ½”λ“œλ₯Ό μž‘μ„±ν•˜κΈ° μœ„ν•¨μž…λ‹ˆλ‹€.

 

μš°λ¦¬λŠ” doSomethingμ΄λΌλŠ” ν•¨μˆ˜λ§Œ λ³΄κ³ λŠ” μ•„κ·œλ¨ΌνŠΈλ‘œ λ„£λŠ” κ°’μ˜ 역할을 μ •ν™•νžˆ μ•Œ 수 μ—†μŠ΅λ‹ˆλ‹€.

 

κ·Έλž˜μ„œ μœ„μ˜ μ˜ˆμ‹œμ—μ„œλŠ” firstNumκ³Ό secondNum을 ν†΅ν•΄μ„œ 역할을 μ•Œ 수 μžˆκ²Œλ˜λŠ” κ±°μ£ . 그런데 firstNumκ³Ό secondNum을 νŒŒλΌλ―Έν„° μ΄λ¦„μœΌλ‘œ μ“°κΈ°μ—λŠ” λ„ˆλ¬΄ 길지 μ•Šλ‚˜μš”? 이 λ•Œλ¬Έμ— 편의λ₯Ό μœ„ν•΄ λ‚˜μ˜¨ 것이 "μ•„κ·œλ¨ΌνŠΈ λ ˆμ΄λΈ”"μž…λ‹ˆλ‹€.

 

 

μ™€μΌλ“œ μΉ΄λ“œ νŒ¨ν„΄

μ•„κ·œλ¨ΌνŠΈ λ ˆμ΄λΈ”μ„ μƒλž΅ν•˜κΈ° μœ„ν•œ 기호둜 "_"λ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 

μ½”λ“œλ₯Ό μž‘μ„±ν•  λ•Œ 많이 μ‚¬μš©ν•˜κ²Œ λ˜λŠ” νŒ¨ν„΄μΈλ°μš”, λ‹€μŒκ³Ό 같이 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

 

μ•„κ·œλ¨ΌνŠΈ λ ˆμ΄λΈ”μ„ "_"둜 μ„€μ •ν•¨μœΌλ‘œμ¨ ν˜ΈμΆœλΆ€μ˜ μ•„κ·œλ¨ΌνŠΈ 값을 μƒλž΅μ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€. 

ν˜ΈμΆœλΆ€μ—μ„œλŠ” μ•„κ·œλ¨ΌνŠΈλ₯Ό μƒλž΅ν•˜κ³ , μ„ μ–ΈλΆ€μ—μ„œλŠ” νŒŒλΌλ―Έν„° κ°’μœΌλ‘œ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λŠ” κ°„νŽΈν•˜κ³  효율적인 νŒ¨ν„΄μž…λ‹ˆλ‹€.

 

 

κ°€λ³€ νŒŒλΌλ―Έν„°

νŒŒλΌλ―Έν„°μ˜ 개수λ₯Ό μ•Œμ§€ λͺ»ν•  λ•Œ  μ‚¬μš©ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€.

 

νƒ€μž…μ„ "Int..."와 같이 ...을 λΆ™μ—¬μ€ŒμœΌλ‘œμ¨ λ°°μ—΄μž„μ„ μ•Œ 수있게 ν•΄μ€λ‹ˆλ‹€. 

νŒŒλΌλ―Έν„°μ˜ 개수λ₯Ό μ•Œμ§€λͺ»ν•  λ•Œ μ‚¬μš©ν•˜λ©°, 기본값을 κ°€μ§ˆ 수 μ—†μŠ΅λ‹ˆλ‹€.

'ios' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

swift - 싱글톀 νŒ¨ν„΄  (0) 2022.07.05
Swift - μ—΄κ±°ν˜•(enum), μ›μ‹œκ°’, μ—°κ΄€κ°’  (0) 2022.06.30
Swift- inout  (0) 2022.06.28
Swift - if let (Optional)  (0) 2022.06.12
Swift - let, var, array, dictionary  (0) 2022.06.12