var anyData: Any = 100
anyData = "String도 가능"
anyData = 123.45
class AnyClass {}
var someObject: AnyObject = AnyClass()
var anyData: Any = 100
var someObject: AnyObject = AnyClass()
anyData = nil // 컴파일 오류
someObject = nil // 컴파일 오류
.
func greeting(name: String, job: String = "designer") {
print("Hi! I'm \(name), \(job).")
}
// 기본값을 갖는 매개변수는 호출시 생략 가능
greeting(name: "snack") // Hi! I'm snack, designer.
// 함수 내부에서는 매개변수 이름을 사용
func greeting(name me: String, job work: String) {
print("Hi! I'm \(me), \(work).")
}
// 함수 호출 시에는 전달인자 레이블을 사용
greeting(name: "snack", job: "designer") // Hi! I'm snack, desinger.
func greeting(name: String, job: String...) {
print("Hi! I'm \(name), \(job).")
}
greeting(name: "snack", job: "designer", "developer")
// Hi! I'm snack, ["designer", "developer"].
// 함수의 타입 표현
(첫 번째 매개변수 타입, 두 번째 매개변수 타입, ...) -> 반환타입
func greeting(name: String, job: String) {
print("Hi! I'm \(name), \(job).")
}
var someFunction: (String, Stiring) -> Void = greeting(name:job:)
someFunction("snack", "designer") // Hi! I'm snack, designer.
// 타입이 다른 함수는 할당할 수 없다.
func runAnother(function: (String, String) -> Void {
function("snack", "designer")
}
runAnother(function: greeting(name:job:)) // Hi! I'm snack, designer.