매개변수 기본값
매개변수마다 기본값 지정 가능
func sayHello(from name: String, to myName: String = "Jenny") -> String {
return "Hello \(name)! I`m \(myName)"
}
// myName 매개변수의 기본값 사용
let toJenny: String = sayHello(from: "Tom")
print(toJenny)
// Hello Tom! I`m Jenny
// 기본값 외 값 할당
let toMike: String = sayHello(from: "Jerry", to: "Cole")
print(toMike)
// Hello Jerry! I`m Cole
★ 기본값이 있는 매개변수는 맨 마지막에 위치,
기본값의 유무보단, 중요한 매개변수는 맨 앞에 위치 ★
가변 매개변수
매개변수로 몇 개의 값을 받을지 모를 때 사용
가변 매개변수로 들어온 인자 값은 배열처럼 사용
함수 마다 가변 매개변수는 1개만 가질 수 있음
func fruitInfo(market: String, list fruit: String...) -> String {
var result: String = "\(market)에 있는 과일은 다음과 같습니다. "
for item in fruit {
result += "\(item)" + " "
}
return result
}
let marketA: String = fruitInfo(market:"MarketA", list: "Apple", "Banana","Kiwi")
print(marketA)
// MarketA에 있는 과일은 다음과 같습니다. Apple Banana Kiwi
반환이 없는 함수
반환 값이 없을 경우에는
반환 타입을 생략 또는 "Void" 키워드를 사용
반환 값이 없는 함수의 정의와 사용
func sayHello() {
print("Hello")
}
sayHello()
// Hello
func sayBye()-> Void {
print("Bye")
}
sayBye()
// Bye
데이터 타입으로서의 함수
스위프트에서 함수는 1급 객체
하나의 데이터 타입으로 사용 가능
(매개변수 타입의 나열) -> 반환 타입
함수 타입의 사용
func addNum(_ a: Int, _ b: Int) -> Int {
return a + b
}
let checkNum: (Int, Int) -> Int = addNum
print(checkNum(1,2))
addNum의 함수 타입은 (Int, Int) -> Int
checkNum 이라는 변수는 (Int, Int) 를 받아 Int로 반환하는 함수 타입
checkNum에 addNum 이라는 함수를 할당
전달인자로 함수를 전달받는 함수
func addNum(_ a: Int, _ b: Int) -> Int {
return a + b
}
func printResult(_ resultNum: (Int, Int)-> Int, _ a: Int, _ b: Int) {
print("\(resultNum(a,b))")
}
printResult(addNum, 1,2)
// 3
printResult 함수의 매개변수 resultNum은 (Int, Int) -> Int 의 함수 타입
printResult 함수를 호출할 때 resultNum의 전달인자로 addNum 함수를 받음
'iOS > Swift' 카테고리의 다른 글
옵셔널 (0) | 2024.01.16 |
---|---|
함수 3편 (중첩 함수) (1) | 2024.01.15 |
함수 1편 (함수 정의 및 호출) (0) | 2024.01.14 |
흐름 제어 (반복문) (0) | 2024.01.12 |
흐름 제어 (switch 구문) (0) | 2024.01.11 |