하나의 복합 반환 값의 일부로 여러 값을 반환하는 함수의 반환 유형으로 튜플 유형을 사용할 수 있습니다.
아래 예제는 Int 값의 배열에서 가장 작은 수와 가장 큰 수를 찾는 minMax(array:)라는 함수를 정의합니다.
func minMax(array: [Int]) -> (min: Int, max: Int) {
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)
}
minMax(array:) 함수는 두 개의 Int 값을 포함하는 튜플을 반환합니다.
이러한 값음 함수의 반환 값을 조회할 때 이름으로 액세스할 수 있도록 min 및 max로 레이블이 지정됩니다.
minMax(array:) 함수의 본문은 currentMin 및 currentMax라는 두 개의 작업 변수를 배열의 첫 번째 정수 값으로 설정하는 것으로 시작합니다.
그런 다름 함수는 배열의 나머지 값을 반복하고 각 값이 각각 currentMin 및 currentMax 값보다 작거나 큰지 확인합니다.
마지막으로 전체 최소값과 최대값이 두 Int 값의 튜플로 반환됩니다.
튜플의 멤버 값은 함수의 반환 유형의 일부로 이름이 지정되기 때문에 점 구문으로 액세스하여 찾은 최소 및 최대 값을 검색할 수 있습니다.
let bounds = minMax(array: [8, -6, 2, 109, 3, 71])
print("min is \\(bounds.min) and max is \\(bounds.max)")
// Prints "min is -6 and max is 109"
<aside> 📖 NOTE 튜플의 멤버 이름은 함수의 반환 유형의 일부로 이미 지정되어 있으므로 튜플이 함수에서 반환되는 지점에서 이름을 지정할 필요가 없습니다.
</aside>