[iOS 사전캠프] 함수, 연산자

DoyleHWorks·2024년 10월 15일
0

함수

기본 문법은 이 글에서 다뤘지만, 다룬 내용이 간단하니 여기에 붙여넣는다.

기본 문법 (붙여넣은 내용)

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'는 이 스코프에서 유효하지 않습니다.

연산자

1. 산술 연산자 (Arithmetic Operators)

연산자설명예시
+덧셈let sum = 3 + 5
-뺄셈let difference = 10 - 4
*곱셈let product = 6 * 7
/나눗셈let quotient = 8 / 2
%나머지let remainder = 10 % 3

2. 비교 연산자 (Comparison Operators)

연산자설명예시
==같음if a == b { ... }
!=같지 않음if a != b { ... }
>if a > b { ... }
<작음if a < b { ... }
>=크거나 같음if a >= b { ... }
<=작거나 같음if a <= b { ... }

3. 논리 연산자 (Logical Operators)

  1. AND 연산자 (&&) : 두 조건이 모두 참일 때만 참
  2. OR 연산자 (||) : 두 조건 중 하나만 참이면 참
  3. NOT 연산자 (!) : 조건을 반대로 만듦
  4. XOR 연산자 (배타적 논리합, !=) : 두 조건이 다를 때 참
  • 이 글에 예시가 정리되어 있음

4. 범위 연산자 (Range Operators)

연산자설명예시
...포함된 범위 (Closed Range)let range = 1...5
..<제외된 범위 (Half-Open Rangelet 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
}

5. 삼항 연산자 (Ternary Operator)

condition ? trueExpression : falseExpression
  • condition: 평가할 조건.
  • trueExpression: 조건이 참일 때 반환될 값.
  • falseExpression: 조건이 거짓일 때 반환될 값.
let age = 18
let canVote = age >= 18 ? "투표 가능" : "투표 불가능"
print(canVote) // 출력: 투표 가능

문제 풀이는 다음 글에서

profile
Reciprocity lies in knowing enough

0개의 댓글

관련 채용 정보