728x90
반응형
- 함수 선언
- 함수 호출
- 매개변수 기본 값
- 전달인자 레이블
- 가변 매개변수
- 함수의 타입 표현
1. 함수 선언
func 함수이름 (매개변수1: 타입, 매개변수2: 타입, ...) -> 반환타입 {
함수 구현부
return 반환값
}
func sum(a: Int, b: Int) -> Int {
return a + b
}
반환 값이 없다면 -> Void
-> Void와 return 생략 가능
2. 함수 호출
sum(a: 3, b: 5)
매개변수가 없다면 괄호() 안쪽을 비워놓으면 된다.
3. 매개변수 기본 값
func 함수이름 (매개변수1: 타입, 매개변수2: 타입 = 매개변수 기본 값, ...) -> 반환타입 {
함수 구현부
return 반환값
}
func sum(a: Int, b: Int = 0) {
print(a + b)
}
왼쪽부터 차례대로 매개변수 기본 값 할당
sum(a: 3) // 3
기본 값이 있는 매개변수는 생략 가능
4. 전달인자 레이블
함수를 호출할 때 매개변수의 역할을 명확하게 하거나
함수 사용자의 입장에서 표현하고자 할 때 사용
func 함수이름 (전달인자_레이블 매개변수1: 타입, 전달인자_레이블 매개변수2: 타입, ...) -> 반환타입 {
함수 구현부
return 반환값
}
func sum(firstInt a: Int, secondInt b: Int = 0) {
print(a + b)
}
함수 내부 - 매개변수 이름 사용
sum(firstInt: 3, secondInt: 5) // 8
함수 호출 - 전달인자 레이블 사용
5. 가변 매개변수
전달받을 값의 개수를 알 수 없을 때 사용
가변 매개변수는 함수당 하나 사용 가능
func 함수이름 (매개변수1: 타입, 매개변수2: 타입...) -> 반환타입 {
함수 구현부
return 반환값
}
func sum(a: Int, b: Int...) {
print("a: \(a), b: \(b)")
}
sum(a: 3, b: 4, 5, 6) // a: 3, b: [4, 5, 6]
sum(a: 3) // a: 3, b: []
가변 매개변수 부분을 비워놓으면, 빈 배열이 전달된다.
6. 함수의 타입 표현
swift의 함수는 변수, 상수 등에 저장이 가능하다.
매개변수를 통해 전달할 수도 있다.
(매개변수1타입, 매개변수2타입 ...) -> 반환타입
/*
func sum1(a: Int, b: Int) -> Int {
return a + b
}
*/
var function: (Int, Int) -> Void = sum1(a:b:)
function(3, 5) // 8
반환타입을 생략할 수 없음
타입이 다른 함수는 할당할 수 없음
Int 매개변수와 Int... 매개변수는 타입이 달라 할당할 수 없다.
func function2(fun: (Int, Int) -> Void) {
fun(3, 5)
}
function2(fun: sum1(a:,b:))
function2(fun: function)
swift에서 함수는 매개변수로 받을 수 있다.
728x90
반응형
'프로그래밍 언어 > Swift' 카테고리의 다른 글
[Swift] 스위프트 기본 문법 4 (조건문, 반복문) (0) | 2023.07.09 |
---|---|
[Swift] 스위프트 기본 문법 2 (Array, Dictionary, Set) (0) | 2023.07.03 |
[Swift] 스위프트 기본 문법 1 (언어 관습, 콘솔로그, 문자열 보간법, 데이터 타입, Any, AnyObject, nil) (0) | 2023.07.03 |