상세 컨텐츠

본문 제목

[Swift] 함수

Mobile

by Yoonsang's Log 2022. 1. 1. 17:46

본문

Swift의 함수 표현은 C언어 함수 표현부터 Objective-C의 복잡한 함수 스타일까지 굉장히 다양하고 유연하다.

함수 호출을 단순화하기 위해서 매개변수로 기본값을 제공할 수 있다.

모든 함수는 매개변수 유형과 반환 유형으로 나누어 진다. 하지만 다른 유형처럼 사용할 수 있다. 

캡슐화를 위해 다른 함수 내에 작성할 수 있다.

Swift에는 여러 최신 언어의 특징들이 포함되어 있다.

 

함수 정의 및 호출(Defining and Calling Functions)

func 키워드와 함께 생성한다. -> 뒤에 오는 타입은 반환형의 타입이다.

func greet(person: String) -> String {
    let greeting = "Hello, " + person + "!"
    return greeting
}

 

함수 매개변수 및 반환값 (Function Parameters and Return Values)

Swift는 단순한 유틸리티 함수부터 복잡한 함수까지 무엇이든 정의할 수 있다.


- 매개변수가 없는 함수

- 여러 매개변수가 있는 함수

- 반환값이 없는 함수

- 여러 반환값이 있는 함수

- 선택적 반환 함수

선택적 반환 함수를 통해 함수에서 반환되는 값이 nil 을 가질 수 있는 경우를 만들 수 있다.

func minMax(array: [Int]) -> (min: Int, max: Int)? {
    if array.isEmpty { return nil }
    var currentMin = array[0]
    var currentMax = array[0]
    for value in array[1..<array.count] {
        if value < currentMin {
            currentMin = value
        } else if value > currentMax {
            currentMax = value
        }
    }
    return (currentMin, currentMax)
}

 

- 암시적으로 반환하는 함수 : 함수 전체 본문이 단일 표현식인 경우 암시적으로 해당 표현식을 반환한다.

func greeting(for person: String) -> String {
    "Hello, " + person + "!"
}

 

함수 인수 라벨 및 매개변수 이름(Funcion Argument Labels and Parameter Names)

- 라벨

매개변수 이름 앞에 공백으로 구분된 라벨을 작성한다.

이렇게 함으로 함수를 문장처럼 표현할 수 있고 함수 호출 시에 어떠한 의도인지 명확하게 알 수 있다.

func greet(person: String, from hometown: String) -> String {
    return "Hello \(person)!  Glad you could visit from \(hometown)."
}
print(greet(person: "Bill", from: "Cupertino"))
// Prints "Hello Bill!  Glad you could visit from Cupertino."

- 라벨 생략

매개변수에 대한 라벨을 원치 않는다면 밑줄 ( _ ) 을 통해 해당 부분을 생략할 수 있다.

- 기본 매개변수

매개변수에 값을 할당하여 함수의 매개변수에 대한 기본값을 정의할 수 있다.

기본값이 설정되어 있다면 해당 매개변수는 required가 아니게 된다.

 

함수 유형 (Function Types)

상수 혹은 변수로 함수 타입을 정의할 수 있다.

따라서 변수 혹은 상수를 통해 함수를 호출할 수 있다.

 

중첩 함수 (Nested Functions)

함수를 중첩할 수 있다. 즉 함수 내부에 함수를 정의할 수 있다.

 

[참고 자료]

https://docs.swift.org/swift-book/LanguageGuide/Functions.html

 

Functions — The Swift Programming Language (Swift 5.5)

Functions Functions are self-contained chunks of code that perform a specific task. You give a function a name that identifies what it does, and this name is used to “call” the function to perform its task when needed. Swift’s unified function syntax

docs.swift.org

 

'Mobile' 카테고리의 다른 글

[Swift] 제어 흐름  (0) 2022.01.01
[Swift] 컬렉션 유형  (0) 2022.01.01
[Swift] 문자 및 문자열  (0) 2022.01.01
[Swift] 기본 연산자  (0) 2022.01.01
[Swift] 첫 시작과 계기, 기초  (0) 2022.01.01

관련글 더보기

댓글 영역