소피it블로그
[Swift] 100 Days of Swift - Day 2 정리 본문
https://www.hackingwithswift.com/100/2
게으름 피우다가 이제서야 부랴부랴 하루치 듣고 정리하려고 하는데, 하루 분량이 1분짜리 강의 10개 내외라 별 것 아니라고 생각했던 것을 벌써 반성하게 된다.
스위프트만 한다면 아마 별 것 아니게 느껴지겠지만 이것저것 해야하는 게 많은 나로서는 이 짧은 강의마저도 은근한 일거리로 느껴진다. 그 이유는 아마도 파이썬과 꽤나 다른 스위프트 코드의 모양새, 단순히 듣고 끝내는 게 아니라 정리해서 내 것으로 만들어야 한다는 부담감 아닌 부담감, 그리고 정리할 때 수업에서 선생님이 들어준 예시를 그대로 가져다 쓰기보다는 내 나름대로 새로 작성해보고 싶다는 욕심 때문일 것이다. 언제나 그렇듯 완벽주의적인 성향이 날 괴롭게 한다. 일단 할 수 있는데까지는 해보되, 가장 기본 원칙인 "하루에 1일 분량은 꼭 듣고, 꼭 기록 남기기" 만큼은 지켜야겠다.
역시나 새로 알게 된 부분이나 확실히 익히지 못한 부분 위주로 정리한다.
1. Array: Type annotation을 쓴다면 어레이 즉 배열은 [ ] 기호와 함께 써줘야 한다.
var myArray: [String] = ["this", "is", "my", "array"]
// 그 밖에도 [Int], [Double], [Bool]
2. Set 만들 때 형식
let mySet = Set(["a", "b", "c",])
3. Tuple
var myTuple = (gender: "female", height: "157")
myTuple.0
myTuple.gender
4. Dictionary: 파이썬에서와 다르게 { }가 아닌 [ ]를 써준다.
let babies = [ "cat": "kitten", "dog": "puppy"]
// [String: String]형식의 딕셔너리
5. Dictionary default: 딕셔너리에 없는 값을 검색할 때 디폴트 value를 넣어줄 수 있다.
babies["rabbit", default: "unknown"]
6. Empty Collections: 빈 컬렉션을 만들 때는 배열, 딕셔너리와 그 이외로 구분된다.
var myDict = [String: Int]()
var myArray = [Bool]()
var mySet = Set<String>()
// 다만 빈 딕셔너리와 배열은 이 형식으로도 만들어줄 수 있음.
var myDict = Dictionary<String, String>()
var myArray = Array<Int>()
7. Enum: 몇 가지 선택지를 둔 상황에서 고르게 할 때 사용함. 특히 철자나 표현 등을 혼용하여 쓸 위험이 있을 때 enum을 사용하면 좋다.
enum Pets { case dog
case cat
}
let pet = Pets.cat
8. Enum의 associated values
enum Activity { case reading(title: String)
case sleeping(place: String)
case eatingCandies(counting: Int)
}
let reading = Activity.reading(title: "Wuthering Heights")
9. Enum의 raw value: 사실 로 밸류는 아직 정확히 무슨 개념인지 이해를 못하긴 했다. 어떤 상황에서 쓰여야 하는지 등... 일단 Int의 경우 스위프트에선 기본적으로 0부터 1씩 늘려가면서 자동으로 번호를 할당해주는데, 본인이 임의의 번호를 할당해줘도 된다. 그 경우 해당 번호 이후부터 1씩 더해가며 자동으로 생성된다.
enum Days: Int { case Sunday
case Monday
case Tuesday
}
// 이 경우 Sunday부터 0, 1, 2 순으로 자동으로 번호가 할당된다.
let monday = Days(rawValue: 1)
'개발_iOS > 스위프트' 카테고리의 다른 글
[Swift] 100 Days of Swift - Day 6 정리 (0) | 2022.03.27 |
---|---|
[Swift] 100 Days of Swift - Day 5 정리 (0) | 2022.03.26 |
[Swift] 100 Days of Swift - Day 4 정리 (0) | 2022.03.26 |
[Swift] 100 Days of Swift - Day 3 정리 (0) | 2022.03.26 |
[Swift] 100 Days of Swift - Day 1 정리 (0) | 2022.03.25 |