Swift 입문 | 함수 | 여러 반환값와 튜플(tuple)


Swift 함수는 매우 재미있는 특징을 가지고 있다. 그 중에서도 중요한 것은 여러 값을 반환하는 기능이다.

이것은 사실 Swift 함수에 비밀이 있는 것은 아니다. Swift 준비되어 있는 “튜플(tuple)“값에 비밀이 있다.

튜플은 여러 값을 한곳에 모아 처리하는 것이다. 이는 ()를 사용하여 쉽게 작성할 수 있다.

(이름:값, 이름:값, ...)

이렇게 생성된 튜플은 그것을 할당한 변수 등에서 이름을 지정하고 값을 얻어 낼 수 있다. 예를 들어, 이런한 형태이다.

var person = (name:"Taro", age:35)
person.name
person.age

여기에서 name과 age라는 값으로부터 튜플로 변수 person에 대입하고 있다. 이 값은 person.name과 person.age 형태로 꺼낼 수 있게 된다.

튜플(tuple)을 반환 값으로 사용

이 튜플의 개념을 알면 “여러 값을 반환"하는 함수도 간단하게 만들 수 있다.

아래 예제를 살펴 보도록 하겠다.

func tax(price:Int) -> (kakaku:Int, zei:Int) {
    let zei:Int = Int(Double(price) * 0.08)
    let kakaku:Int = price - zei
    return (kakaku:kakaku, zei:zei)
}

var res = tax(10000)
res.kakaku
res.zei

여기에서는 다음과 같이 반환 값을 지정할 수 있다.

-> (kakaku:Int, zei:Int)

이것으로 kakaku과 zei 두 값을 되는 튜플을 반환 값으로 지정된다. 그 후로는 함수의 반환값을 할당한 변수에서 kakaku과 zei값을 꺼내 사용하면 된다.