다양한 매개변수를 갖는 함수
func hello(a: String, b:String = "hi"){
print("Hello \(a), \(b)")
}
hello(a:"ms") // Hello ms, hi
hello(a:"ms", b:"wow") // Hello ms, wow
func hello(to friend: String, from me: String){
print("Hello \(friend), hi \(me)")
}
// 함수를 호출할 때에는 전달인자 레이블을 사용해야 한다.
hello(to: "go", from: "hard")
func sayHello(me: String, friend: String...) -> String{
return "Hello \(friend)! i'm \(me)"
}
// from 전달인자는 무조건 한개 이상
print(sayHello(me: "gogo", friend: "hard", "easy"))
// Hello ["hard", "easy"]! i'm gogo
var someFunction: (String, String) -> Void = hello(to:from:)
someFunction("go", "hard")
// !! 다른 타입은 할당 할 수 없다.
//someFunction = sayHello(me: "gogo", friend: "hard")
func Another(function: (String, String) -> Void){
function("hi", "hello")
}
Another(function: hello(a:b:))
// 출력 print("Hello \(friend), hi \(me)")
// Hello hi, hello
Another(function: someFunction)