DAY 10
함수(function)를 매개변수와 리턴값으로 사용
함수를 자료형으로 사용
스위프트는 함수를 데이터 타입처럼 처리할 수 있다
다음과 같이 함수를 상수 또는 변수에 할당하는 것이 가능
func inchesToFeet(inches: Float) -> Float {
return inches * 0.0833333
}
let toFeet = inchesToFeet
var tmp = toFeet(10)
print(tmp)
var tmp2 = inchesToFeet(inches: 10)
print(tmp2)
함수 호출시 toFeet(10)
처럼 외부 매개변수 명을 명시하지 않아야 작동하며 상수 이름을 이용하여 호출이 가능함
어떤 함수에 다른 함수를 인자로 넘겨주거나, 함수의 반환 값으로 함수를 넘겨줄 수 있음
Swift 함수는 1급 객체(first class object) 또는 1급 시민(first class citizen)
다음 조건을 충족하는 객체를 1급 객체(first class object) 라고 한다
- 변수에 저장할 수 있다
- 매개변수로 전달할 수 있다
- 리턴값으로 사용할 수 있다
함수를 매개변수로 사용
func outputConversion(converterFunc: (Float) -> Float, value: Float) {
let result = convertFunc(value)
print("Result = \(result)")
}
outputConversion
의 type
((Float) -> Float, Float) -> ()
함수를 리턴값으로 사용
func decideFunction(feet: Bool) -> (Float) -> Float {
if feet {
return toFeet
} else {
return toYards
}
}
feet
Boolean 변수가 true
이면 toFeet
함수 반환하고 false
이면 toYard
반환
댓글