Potato
μ•ˆλ…•ν•˜μ„Έμš”, κ°μž‘λ‹ˆλ‹€?πŸ₯” ^___^ 😺 github λ°”λ‘œκ°€κΈ° πŸ‘‰πŸ»

Swift/Swift BASIC

[Swift] 기초 문법 - ν•¨μˆ˜ μ •μ˜

감자 πŸ₯” 2022. 1. 12. 02:13
λ°˜μ‘ν˜•

 

ν•¨μˆ˜

μž‘μ—…μ˜ κ°€μž₯ μž‘μ€ λ‹¨μœ„μ΄μž μ½”λ“œμ˜ 집합이닀. ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” μ΄μœ λŠ” 반볡적인 ν”„λ‘œκ·Έλž˜λ°μ„ ν”Όν•  수 있기 λ•Œλ¬Έμ— μ‚¬μš©ν•œλ‹€. ν•¨μˆ˜λ₯Ό μž‘μ„±ν•΄ 두고, ν”„λ‘œκ·Έλž˜λ° 도쀑 λ°˜λ³΅ν•΄μ„œ μˆ˜ν–‰ν•΄μ•Όν•  μž‘μ—…μ΄ 있으면 ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λ©΄μ„œ 반볡적인 ν”„λ‘œκ·Έλž˜λ°μ—μ„œ λ²—μ–΄λ‚  수 μžˆλ‹€. 

ν•¨μˆ˜μ˜ ν¬κΈ°λŠ” 정해진 것은 μ—†μ§€λ§Œ, λŒ€λΆ€λΆ„ ν•˜λ‚˜μ˜ κΈ°λŠ₯을 μœ„ν•œ ν•¨μˆ˜ ν•œκ°œλ₯Ό λ§Œλ“œλŠ” 것이 μ’‹λ‹€.

 

Swift의 ν•¨μˆ˜ μ •μ˜

func ν•¨μˆ˜λͺ…(νŒŒλΌλ―Έν„° 이름: 데이터 νƒ€μž…) -> λ°˜ν™˜ νƒ€μž… {
      return λ°˜ν™˜ κ°’
}

ex) 두 개의 값을 λ”ν•΄μ£ΌλŠ” ν•¨μˆ˜λ₯Ό μ •μ˜ν•΄λ³΄μž.

func sum(a: Int, b: Int) -> Int {
	return a+b
}

// ν•¨μˆ˜ 적용
sum(a: 5, b: 3)
// prints 8

 

ex) λ§€κ°œλ³€μˆ˜κ°€ μ—†λŠ” hello ν•¨μˆ˜λ₯Ό μ •μ˜ν•΄λ³΄μž.

func hello () -> String {
	return "hello"
}

 

ex) λ°˜ν™˜κ°’μ΄ μ—†λŠ” ν•¨μˆ˜λ₯Ό μ •μ˜ν•΄λ³΄μž. 두 κ°€μ§€μ˜ 방법이 μžˆλ‹€.

// 1. λ°˜ν™˜κ°’μ— Void λ„£μŒ
func printName() -> Void {
	return "hello"
}

// 2. λ°˜ν™˜κ°’μ„ μ•ˆμ μ–΄λ„ 됨.
func printName() -> {
	return "asdf"
}

 

ex) ν•¨μˆ˜ λ§€κ°œλ³€μˆ˜μ— 기본값을 λ„£μ–΄μ„œ μ‚¬μš©ν•  수 μžˆλ‹€.

μ•„λž˜μ™€ 같이 기본값을 λ„£μ–΄μ£Όλ©΄ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  λ•Œ 값을 λ„˜κ²¨μ£Όμ§€ μ•Šμ•„λ„ 기본값을 μ‚¬μš©ν•  수 μžˆλ‹€. meλŠ” 기본값이기 λ•Œλ¬Έμ— ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  λ•Œ μ•ˆμ¨μ£Όμ–΄λ„ λœλ‹€.

func greeting(friend: String, me: String = 'didu') {
	print("Hello, \(friend)! I'm \(me).")
}
greeting(friend: "Andy")
// prints "Hello, Andy! I'm didu."

 

ex) μ „λ‹¬μΈμž λ ˆμ΄λΈ”μ„ μ‚¬μš©ν•΄μ„œ ν•¨μˆ˜λ₯Ό μ •μ˜ν•˜κΈ°.

κΈ°λ³Έ ν˜•νƒœλŠ” μ•„λž˜μ™€ κ°™λ‹€. μ „λ‹¬μΈμž λ ˆμ΄λΈ”μ„ μ‚¬μš©ν•˜κ²Œ 되면 μ‚¬μš©μž μž…μž₯μ—μ„œ λ§€κ°œλ³€μˆ˜μ˜ 역할을 μ’€ 더 λͺ…ν™•ν•˜κ²Œ 확인할 수 μžˆμ–΄μ„œ μ½”λ“œμ˜ 가독성이 높아진닀. 

func ν•¨μˆ˜μ΄λ¦„(μ „λ‹¬μΈμž λ ˆμ΄λΈ” λ§€κ°œλ³€μˆ˜ 이름: λ§€κ°œλ³€μˆ˜ νƒ€μž…, μ „λ‹¬μΈμž λ ˆμ΄λΈ” λ§€κ°œλ³€μˆ˜ 이름: λ§€κ°œλ³€μˆ˜ νƒ€μž…... ) -> λ°˜ν™˜ νƒ€μž… {
	return λ°˜ν™˜ κ°’
}

β–Ά μΉœκ΅¬μ—κ²Œ 인사 메세지λ₯Ό λ³΄λ‚΄λŠ” λ©”μ„œλ“œλ₯Ό λ§Œλ“€μ–΄λ³΄μž.

func sendMessage(from myName: String, to name: String) -> String {
	return "Hello \(name)!, I'm \(myName)."
}

sendMessage(from: "didu", to: "Minsoo")
//prints "Hello Minsoo, I'm didu."

μ—¬κΈ°μ„œ μ „λ‹¬μΈμž λ ˆμ΄λΈ”μ€ "From"κ³Ό "To" 이닀. ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  λ•Œ from ~~, to ~~ ν•΄μ£Όλ©΄, from으둜 λ“€μ–΄μ˜€λŠ” λ§€κ°œλ³€μˆ˜κ°€ myName으둜 μ •μ˜λ˜κ³ , to둜 λ“€μ–΄μ˜€λŠ” λ§€κ°œλ³€μˆ˜κ°€ name으둜 μ •μ˜λ  것이닀.

 

ex) κΈ°μ‘΄μ–Έμ–΄μ²˜λŸΌ μ „λ‹¬μΈμžλ₯Ό μ‚¬μš©ν•˜κ³  싢지 μ•Šλ‹€λ©΄, μ™€μΌλ“œ μΉ΄λ“œ μ‹λ³„μžλ₯Ό μ‚¬μš©ν•˜κΈ° (언더바 _)

λ§€κ°œλ³€μˆ˜ μ•žμ— 언더바(_)λ₯Ό 적어주면 μ „λ‹¬μΈμž λ ˆμ΄λΈ”μ„ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” ν•¨μˆ˜λ₯Ό κ΅¬ν˜„ν•œ 것이닀. μ΄λ ‡κ²Œ μ„ μ–Έν•œ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•  λ•ŒλŠ” λ§€κ°œλ³€μˆ˜ 이름을 λ”°λ‘œλ”°λ‘œ μ•ˆμ μ–΄μ£Όκ³  κ°’λ§Œ μ μ–΄μ„œ ν•¨μˆ˜λ₯Ό 호좜 ν•  수 μžˆλ‹€.

func sendMessage(_ name: String) -> String {
	return "Hello \(name)."
}

// ν•¨μˆ˜ 호좜
// 호좜 ν•  λ•Œ λ§€κ°œλ³€μˆ˜μ˜ 이름을 μ‚¬μš©ν•˜μ§€ μ•Šκ³ , κ°’μœΌλ‘œ λ°”λ‘œ 호좜 κ°€λŠ₯
sendMessage("didu")
// prints "Hello didu."

 

ex) κ°€λ³€ λ§€κ°œλ³€μˆ˜λ₯Ό ν™œμš©ν•œ ν•¨μˆ˜

swiftλŠ” ν•¨μˆ˜μ— λͺ‡ 개의 λ§€κ°œλ³€μˆ˜κ°€ λ“€μ–΄μ˜¬μ§€ λͺ¨λ₯Ό λ•Œ, κ°€λ³€ λ§€κ°œλ³€μˆ˜λ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€. κ°€λ³€ λ§€κ°œλ³€μˆ˜λŠ” 0개 μ΄μƒμ˜ 값을 λ°›μ•„μ˜¬ 수 있고, κ°€λ³€λ§€κ°œλ³€μˆ˜λ‘œ λ“€μ–΄μ˜¨ λ§€κ°œλ³€μˆ˜λŠ” λ°°μ—΄μ²˜λŸΌ μ‚¬μš©ν•  수 μžˆλ‹€. ν•¨μˆ˜λ§ˆλ‹€ ν•œ 개의 κ°€λ³€ λ§€κ°œλ³€μˆ˜λ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€.

func sendMessage(me: String, friends: String...) -> String {
	return "Hello \(friends)! I'm \(name)"
}

// ν•¨μˆ˜ 호좜
sendMessage(me: "didu", friends: "minsoo", "suzi", "ann", "andy")
// prints : Hello ["minsoo", "suzi", "ann", "andy"]! I'm didu."
// λ°°μ—΄λ‘œ λ„˜κ²¨λ°›μŒ!!!

 

λ°˜μ‘ν˜•