함수(Functions)
함수의 정의
func HappyOri(myName : String) -> String {let greeting = "Happy" + myNamereturn greeting}
당연히 복수의 입력 파라미터를 가질 수 있고 튜플을 이용해 복수의 반환 값을 가질 수 있습니다
복수의 반환값을 가지는 함수
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)}
다음과 같이 반환된 값을 사용할 수 있습니다.
let bounds = minMax([8, -6, 2, 109, 3, 71])println("min is \(bounds.min) and max is \(bounds.max)")// prints "min is -6 and max is 109"
외부 파라미터 이름(Extrernal Prameter Names)
함수를 정의 할때 외부 파라미터 이름을 지정할 수 있습니다.
기존 내부 파라미터 이름 앞에 외부 파라미터이름을 넣을 수 도 있고 # 을 이용해 내부 파라미터이름과 외부 파라미터 이름을 합칠 수 도 잇습니다.
// 내부 파라미터 이름func join(s1: String, s2: String, joiner: String) -> String {return s1 + joiner + s2}// 외부 파라미터 이름func join(string s1: String, toString s2: String, withJoiner joiner: String)-> String {return s1 + joiner + s2}//단축 외부 파라미터 이름func join2(#string: String, #toString: String, #withJoiner: String) -> String {return string + withJoiner + toString}
외부 파라미터를 쓰지 않으면 함수를 사용할때 입력 파라미터의 목적이 불분명해질 수 있습니다.
그래서 외부 파라미터를 쓰면 편한경우가 많습니다.
다음은 위의 3개의 함수를 사용할때의 모습입니다.
그래서 외부 파라미터를 쓰면 편한경우가 많습니다.
다음은 위의 3개의 함수를 사용할때의 모습입니다.
기본(default) 파라미터 값
함수의 파라미터에 기본값을 설정할 수 있습니다.
기본값을 설정후 함수사용시 값을 입력하지 않으면 기본값을 이용합니다.
이때 외부 이름을 부여하지 않은 파라미터에 대해 자동으로 외부 파라미터이름을 제공합니다.
# 를 사용한 것과 같은 효과를 가집니다.
func plus(num : Int = 0 , num2 : Int = 0 ) -> Int {return num + num2}plus(num: 2, num2: 2)//return is 4plus()//return is 0
가변 개수(Variadic) 파라미터
임의의 개수를 입력받는 함수를 정의하기위해 입력 파라미터 타입뒤에 마침표 세개(...) 를 삽입하면 됩니다. 함수 내부에 전달된 값은 적절한 타입의 배열(Array)로 만들어 집니다.
func arithmeticMean(numbers: Double...) -> Double {var total: Double = 0for number in numbers {total += number}return total / Double(numbers.count)}arithmeticMean(1, 2, 3, 4, 5)// returns 3.0, which is the arithmetic mean of these five numbersarithmeticMean(3, 8.25, 18.75)// returns 10.0, which is the arithmetic mean of these three numbers
댓글 없음:
댓글 쓰기