
기능
func 함수이름(매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 ....)-> 반환타입 {
/* 구현부 */
return 반환값
}
인수 레이블
함수를 호출할 때 그 목적은 함수를 사용하는 사용자 입장에서 매개변수의 역할을 보다 명확하게 표현하는 것입니다.
인수 레이블을 변경하여 동일한 이름을 가진 중복 함수를 만들 수 있습니다.
func 함수이름(전달인자레이블 매개변수1이름: 매개변수1타입, 전달인자레이블 매개변수2이름: 매개변수2타입)-> 반환타입 {
return
}
func test(to a: String, from b: String) {
print("\(a), \(b)")
}
func test(x a: String, y b: String) {
print("\(a), \(b)")
}
test(to: "check", from: "test")
test(x: "check", y: "test") //전달인자 레이블을 통해 중복사용 가능
가변 매개변수
전달할 값의 개수를 알기 어려울 때 사용
함수당 하나의 가변 매개변수만 가질 수 있으며 매개변수 뒤에 배치하는 것이 가장 좋습니다.
func test(a: String, b: String...)-> String {
return "hello \(a) , \(b)"
}
print(test(a: "hyun", b: "check", "clear", "kei"))
//hello hyun , ("check", "clear", "kei")
print(test(a: "hyun"))
//hello hyun , ()
데이터 유형으로 작동
변수 및 상수에 할당할 수 있으며 매개 변수로 전달할 수도 있습니다.
func test(to a: String, from b: String) {
print("\(a), \(b)")
}
var someFunction: (String, String)-> Void = test(a:b:)
someFunction("test", "fast")
//타입이 다른 함수는 할당할 수 없음
func runAnother(functon: (String, String)-> Void) {
function("check", "test")
}
runAnother(function: test(a:b:))
runAntoher(function: someFunction
