Swift의 함수는 1급 객체이다.
1급 객체 또는 1급 시민의 조건
1, 함수를 변수에 저장 할 수 있다.
2, 함수를 매개변수로 전달 할 수 있다.
3, 함수를 리턴값으로 사용 할 수 있다.
예제1
- 함수를 매개변수(데이터타입)로 사용 가능
- 함수를 상수 또는 변수에 할당 할 수 있다.
- 함수 호출 시에는 함수 이름 대신 상수 이름을 이용하여 호출 한다.
func testA (A: Int) -> Int {
return A + 10
}
let testB = testA
var result = testB(20)
print(result)
실행결과
// 30
예제2
- 어떤 함수에 다른 함수를 인자로 넘겨주거나 함수의 반환 값으로 함수를 넘겨줄 수도 있다.
- 함수를 매개변수로 사용한 변수의 데이터 타입 또한 출력 할 수 있다.
func testA (A: Int) -> Int {
return A + 10
}
let testB = testA
var result = testB(20)
print(result)
print(type(of:testB))
실행결과
// 30
// (Int) -> Int
예제3 : 함수를 리턴값으로 사용하는 예제
func inchesToFeet (inches: Float) -> Float {
return inches * 0.0833366
}
func inchesToYards (inches: Float) -> Float {
return inches * 0.0277778
}
print(type(of:inchesToFeet))
let toFeet = inchesToFeet
print(type(of:toFeet))
let toYards = inchesToYards
func outputConversion(converterFunc: (Float) -> Float, value: Float)
{
let result = converterFunc(value)
print("result = \(result)")
}
print(type(of:outputConversion))
outputConversion(converterFunc:toYards, value: 10)
outputConversion(converterFunc:toFeet, value: 10)
실행결과
// (Float) -> Float
// (Float) -> Float
// ((Float) -> Float, Float) -> ()
// result = 0.277778
// result = 0.833366
강의 출처 : https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA
'2022_iOS 앱 개발자 워크숍 > 1, Swift 문법 복습' 카테고리의 다른 글
Swift : 클래스 (0) | 2022.01.06 |
---|---|
Swift : 클로저, 후행 클로저 (0) | 2022.01.05 |
Swift : inout 매개변수 (0) | 2022.01.05 |
Swift : 가변 매개변수 (0) | 2022.01.05 |
Swift : 소수점 원하는 만큼 출력하는 방법 (0) | 2022.01.05 |
댓글