iOS 4th Class

Swift에서는 실행문이 하나라도 있다면 {} 사용

import Foundation

// 1. Array에 저장된 정수 중 짝수만 필터링하기
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
let evenNumbers = numbers.filter { number in
    return number % 2 == 0
}
print("짝수만 필터링: \(evenNumbers)") // [2, 4, 6, 8, 10]

// ---

// 2. switch 문에서 특정 조건을 만족하는 case를 처리하기
let somePoint = (x: 1, y: 1)
switch somePoint {
case let (x, y) where x == y:
    print("(\(x), \(y))는 x와 y가 같은 직선 위에 있습니다.")
case let (x, y) where x == -y:
    print("(\(x), \(y))는 x와 y가 반대 부호인 직선 위에 있습니다.")
case let (x, y) where x > 0 && y > 0:
    print("(\(x), \(y))는 1사분면에 있습니다.")
default:
    print("(\(somePoint.x), \(somePoint.y))는 다른 사분면에 있습니다.")
}

// ---

// 3. For-In 루프에서 특정 조건의 요소만 순회하기
let words = ["apple", "banana", "kiwi", "grape"]
for word in words where word.count > 4 {
    print("\(word)는 4글자가 넘습니다.")
}

함수의 자료형은 (매개변수 자료형)->리턴값 자료형으로 나타난다.

Void 는 빈 튜플의 alias이기 때문에 Void 리턴값을 가지는 함수를 typeof로 찍어 보면 ()이 나온다.

func add(xx x : Int,yy y : Int) -> Int {
    return x + y
}

이런 코드가 있다면 xx가 외부 매개변수, x가 내부 매개변수 이름이 된다.

xx가 생략된다면 x가 양쪽 겸용이 된다.

이와 같이 함수에 이름을 표시하면 매개변수 개수만큼 콜론을 사용하는것을 알 수 있다

func tableView(_ tableView: UITableView,numberOfRowsInSection section: Int) -> Int {
return items.count
}

이런 함수의 경우 자료형은 (UITableView,Int) -> Int, 함수 이름은 tableView(_:numberOfRowsInSection)이 된다.

guard문은 표현식이 거짓(false)으로 판단될 경우에 수행될 else 절을 반드시 포함해야 한다. 이것이 If와의 차이점.

또한 이것이 guard문을 사용하면 더 가독성 높은 코드를 작성 할 수 있다는것을 말함