💻 개발/TIL

[TIL] 22.08.24

고도고도 2022. 8. 24. 16:15

공부한 것

부스트코스 - iOS 프로그래밍을 위한 스위프트 기초

알게된 것

1. 매개변수 기본 값

func setUserInfo(name : String, age : Int, region : String = "Deajeon") {}
  • 함수를 정의할 때 매개변수에 기본적으로 전달될 값을 미리 저장할 수 있음
  • 기본 값을 갖는 매개변수는 매개변수 목록 중 맨 뒤에 위치하는 것이 좋음

2. 전달인자 레이블

// 내부에서는 매개변수 이름
func greeting(to friend : String, from me : String) {
	print("Hello, \(friend)!, my name is \(me)")
}

// 호출할 때는 전달인자 레이블
greeting(to : "doko", from : "kodo")
  • 매개변수의 역할을 좀 더 명확하게 하거나 사용자의 입장에서 표현하고자 할 때 사용
  • 함수 내에서는 매개변수 이름을 사용하고, 호출할 때는 전달인자 레이블을 사용
  • 전달인자 레이블을 변경하여 동일한 이름의 함수를 중복으로 생성할 수 있음

3. 가변 매개변수

func sayHelloToFriends(me: String, friends: String...) -> String {
    return "Hello \(friends)! I'm \(me)!"
}
print(sayHelloToFriends(me: kodo", friends: "doko", "dokori"))
  • 가변 매개변수는 함수당 하나만 가질 수 있음
  • 기본 값이 있는 매개변수처럼 매개변수 목록 중 맨 뒤에 위치하는 것이 좋음

4. 데이터 타입으로서의 함수

var someFunction: (String, String) -> Void = greeting(to:from:)
someFunction("doko", "kodo")

// 타입이 다른 함수는 할당할 수 없음
//someFunction = sayHelloToFriends(me: friends:)


func anotherFunction(function: (String, String) -> Void) {
    function("kodo", "doko")
}

anotherFunction(function: greeting(friend:me:))
  • 스위프트의 함수는 일급객체이므로 함수를 변수, 상수에 할당이 가능하고 매개변수를 통해 전달 가능

'💻 개발 > TIL' 카테고리의 다른 글

[TIL] 22.09.21  (0) 2022.09.21
[TIL] 22.08.25  (0) 2022.08.25
[TIL] 22.08.24  (0) 2022.08.24
[TIL] 22.06.03  (0) 2022.06.03
[TIL] 22.05.27  (0) 2022.05.27
[TIL] 22.05.26  (0) 2022.05.26