기본 문법은 이 글에서 다뤘지만, 다룬 내용이 간단하니 여기에 붙여넣는다.
func functionName(parameters) -> ReturnType {
// 코드 블록
}
functionName
: 함수의 이름parameters
: 함수에 전달할 입력값의 목록 - 각 매개변수는 이름과 타입을 명시해야 함ReturnType
: 함수가 반환하는 값의 타입 - 반환값이 없을 경우 Void로 명시하거나 생략할 수 있음기본값 매개변수: 매개변수에 기본값을 지정하여 해당 매개변수를 생략할 수 있음
func greet(name: String = "Guest") -> String {
return "Hello, \(name)!"
}
print(greet()) // 출력: Hello, Guest!
print(greet(name: "Bob")) // 출력: Hello, Bob!
가변 매개변수: 함수에 전달될 수 있는 여러 개의 값을 수용할 수 있는 매개변수 (...
으로 정의)
func sum(numbers: Int...) -> Int {
return numbers.reduce(0, +)
}
let total = sum(numbers: 1, 2, 3, 4, 5)
print(total) // 출력: 15
함수의 타입을 이해하기 위해서는 함수가 어떻게 정의되고, 다른 함수와 어떻게 상호작용할 수 있는지를 살펴봐야 한다.
func add(a: Int, b: Int) -> Int {
return a + b
}
// 함수 이름: add
// 매개변수: 두 개의 Int 매개변수 a와 b
// 반환 타입: Int
// 위 add 함수의 타입:
(Int, Int) -> Int
Swift에서는 함수를 다른 함수의 매개변수로 전달할 수 있다.
func calculate(operation: (Int, Int) -> Int, a: Int, b: Int) -> Int {
return operation(a, b)
}
let result = calculate(operation: add, a: 5, b: 3) // 함수 add를 매개변수로 받아 호출함
print(result) // 출력: 8
함수는 다른 함수를 반환할 수도 있다.
func makeMultiplier(factor: Int) -> (Int) -> Int {
return { number in
return number * factor
}
}
// Int 매개변수 factor를 받고, (Int) -> Int 타입의 함수를 반환하는 함수
// 반환된 함수는 주어진 factor와 number를 곱한 값을 반환함
let double = makeMultiplier(factor: 2) // 2를 곱하는 함수 생성
let result = double(5) // 2 * 5 = 10
print(result) // 출력: 10
Swift에서는 함수 안에 다른 함수를 정의할 수 있다.
func outerFunction() {
func innerFunction() {
print("This is an inner function.")
}
innerFunction()
}
outerFunction() // 출력: This is an inner function.
함수 내에서 정의된 변수는 그 함수의 스코프 내에서만 유효하다. 외부에서 접근 불가!
func myFunction() {
let message = "Hello"
print(message) // 유효
}
myFunction()
// print(message) // 오류: 'message'는 이 스코프에서 유효하지 않습니다.
연산자 | 설명 | 예시 |
---|---|---|
+ | 덧셈 | let sum = 3 + 5 |
- | 뺄셈 | let difference = 10 - 4 |
* | 곱셈 | let product = 6 * 7 |
/ | 나눗셈 | let quotient = 8 / 2 |
% | 나머지 | let remainder = 10 % 3 |
연산자 | 설명 | 예시 |
---|---|---|
== | 같음 | if a == b { ... } |
!= | 같지 않음 | if a != b { ... } |
> | 큰 | if a > b { ... } |
< | 작음 | if a < b { ... } |
>= | 크거나 같음 | if a >= b { ... } |
<= | 작거나 같음 | if a <= b { ... } |
&&
) : 두 조건이 모두 참일 때만 참||
) : 두 조건 중 하나만 참이면 참!
) : 조건을 반대로 만듦!=
) : 두 조건이 다를 때 참연산자 | 설명 | 예시 |
---|---|---|
... | 포함된 범위 (Closed Range) | let range = 1...5 |
..< | 제외된 범위 (Half-Open Range | let range = 1..<5 |
for i in 1...5 {
print(i) // 1, 2, 3, 4, 5
}
for i in 1..<5 {
print(i) // 1, 2, 3, 4
}
condition ? trueExpression : falseExpression
condition
: 평가할 조건.trueExpression
: 조건이 참일 때 반환될 값.falseExpression
: 조건이 거짓일 때 반환될 값.let age = 18
let canVote = age >= 18 ? "투표 가능" : "투표 불가능"
print(canVote) // 출력: 투표 가능
문제 풀이는 다음 글에서