iOS

[iOS] 1급 객체(1급 시민) 알아보기

코딩하는둥이 2023. 10. 4. 22:43

1급 객체(1급 시민) 

 1) 변수 저장 가능

 2) 매개변수로 전달

 2) 리턴값 사용 가능

  => swift 함수

 

1) 함수를 변수에 저장 가능

     : 함수를 데이터 타입처럼 처리할 수 있음 

func metersToFeet(meters: Float) -> Float {
    return meters * 3.28084
}

let toFeet = metersToFeet // 함수를 자료형처럼 사용

print(metersToFeet(meters: 10)) // metersToFeet 함수 호출
print(toFeet(10)) // toFeet 변수를 통한 함수 호출

 * argument label인 (inches:) 안 씀

 

2) 함수를 매개변수로 사용

//(Int, Double) -> String (매개변수형, 매개변수형) -> 리턴형
func intAndDoubleToString(intValue: Int, doubleValue: Double) -> String {
    return "\(intValue) \(doubleValue)"
}

// 함수를 매개변수로 사용하는 outputConversion 함수
func outputConversion(converterFunc: (Int, Double) -> String, intValue: Int, doubleValue: Double) {
    let result = converterFunc(intValue, doubleValue)
    print("Result = \(result)")
}

let intValue = 5
let doubleValue = 3.14

outputConversion(converterFunc: intAndDoubleToString, intValue: intValue, doubleValue: doubleValue)

3) 함수를 리턴값으로 가능

// 변환 함수를 정의합니다.
func metersToFeet(meters: Float) -> Float {
    return meters * 3.28084
}

func metersToYards(meters: Float) -> Float {
    return meters * 1.09361
}

// 변환 함수를 변수에 할당합니다.
let toFeet = metersToFeet
let toYards = metersToYards

// 변환 결과를 출력하는 함수
func outputConversion(converterFunc: (Float) -> Float, value: Float) {
    let result = converterFunc(value)
    print("Result = \(result)")
}

// 변환 함수를 사용하여 값을 출력합니다.
outputConversion(converterFunc: toYards, value: 10)
outputConversion(converterFunc: toFeet, value: 10)

 

'iOS' 카테고리의 다른 글

[iOS] 함수와 매서드  (0) 2023.10.15
[iOS] 클로저 알아보기  (0) 2023.10.06
[iOS] 기초문법  (0) 2023.09.25
[iOS] 문법 - 옵서널 타입  (0) 2023.09.18
[iOS 프로그래밍] 문법  (0) 2023.09.11