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문을 사용하면 더 가독성 높은 코드를 작성 할 수 있다는것을 말함