본문 바로가기
2022_iOS 앱 개발자 워크숍/1, Swift 문법 복습

Swift : 함수3 [ 함수를 매개변수, 리턴 값으로 사용 ]

by 황민우 2022. 1. 5.

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

댓글