- function
- func getColor(string: String) -> (red: Int, green: Int, blue: Int) {}
- println(“\(returnVal.red) and \(returnVal.green) and \(returnVal.blue)”)
- func makeColor(c1: Int, c2: Int, c3: Int)
- func makeColor(withRed c1: Int, withGreen c2: Int, withBlue c3: Int)
- 말을 만드는 것처럼 함수를 호출할 수 있게 (sentence-like)
- func makeColor(#red: Int, #green: Int, #blue: Int)
- 함수 내, 외부에서 같은 이름으로 파라미터를 사용
- func makeColor(withRed c1: Int, withGreen c2: Int, withBlue c3: Int = 100)
- func makeColor(c1: Int, c2: Int, c3: Int = 100)
- makeColor(100, 100, c3: 150)
- func joinItems(items: String…)
- 가변 갯수 파라미터는 항상 파라미터 목록 마지막에
- func sample(var name: String, count: Int)
- var로 선언하면 함수 내에서 값을 변경할 수 있음
- 함수 실행 중에 변경된 값이 함수 실행 후의 값에 영향을 주지는 않음
- func sample(inout a: Int, inout b: Int)
- var val1 = 100
- var val2 = 200
- sample(&val1, &val2)
- 함수 밖의 값에 영향을 미침
- 함수 타입
- 파라미터와 반환값의 타입으로 구성
- (String, Int) -> String
- var func1: (Int, Int) -> Int = func2
- (Int, Int) -> Int 함수 타입인 func1을 정의하고 func1은 func2를 참조한다
- func function3(func1: (Int, Int) -> Int, a: Int, b: Int)
- 반환값으로 사용하는 함수 타입
- func sample1(input: Int) -> Int {}
- func sample2(input: Int) -> Int {}
- func chooseOne(left: Bool) -> (Int) -> Int { return left ? sample1 : sample2 }
- let sample4 = chooseOne(false)
- sample4는 sample2를 가리킨다
- 중첩 함수
- func chooseOne(left: Bool) -> (Int) -> Int {
func sample1(input: Int) -> Int {return 1}
func sample2(input: Int) -> Int {return 1}
return left ? sample1 : sample2
} - 외부에서는 sample1, sample2에 접근하지 못함
- func chooseOne(left: Bool) -> (Int) -> Int {
반응형