Programming/Swift

[Swift] 문법 다시보기 - 함수

devssun 2021. 10. 11. 09:53
728x90
반응형

야곰 스위프트 프로그래밍 책을 읽으며 기억해둘 문법을 정리합니다.


함수

  • 일급객체, 하나의 데이터 타입으로 사용할 수 있음
    • 각 함수는 매개변수 타입과 반환 타입으로 구성된 하나의 타입으로 사용(정의)할 수 있다는 뜻
    • 어떤 상황에서 유용하게 사용할 수 있을지 고민!
  • 함수의 전달인자로 값을 전달할 때는 보통 값을 복사해서 전달한다
  • 값이 아닌 참조를 전달하려면 입출력 매개변수(inout)를 사용한다
var numbers: [Int] = [1, 2, 3]

func nonReferenceParameter(_ arr: [Int]) {
    var copiedArr: [Int] = arr
    copiedArr[1] = 1
}

func referenceParameter(_ arr: inout [Int]) {
    arr[1] = 1
}

nonReferenceParameter(numbers)
print(numbers[1])  // 2

referenceParameter(&numbers)  // 참조를 표현하기 위해 &를 붙인다
print(numbers[1])  // 1

Never (반환타입)

  • 종료되지 않는 함수
  • 정상적으로 끝날 수 없는 함수, 오류를 던지거나 오류를 보고하고 프로세스를 종료함, 어디서든 호출 가능
  • ex. fatalError

@discardableResult

  • 반환 값이 필요하지 않은 함수일 때 선언 사용
반응형