소피it블로그
[Swift] 100 Days of Swift - Day 11 정리 본문
https://www.hackingwithswift.com/100/11
Day 11 – 100 Days of Swift
Follow the 100 Days of Swift and learn to build apps for free.
www.hackingwithswift.com
프로토콜이라는 개념이 너무 생소해서 한 번 강의를 보고 문제를 풀었는데도 아직 틀리는 문제가 많다. 앞으로 프로토콜을 만날 때마다 돌아와서 차근차근 복습해야할 것 같다. 그러다보면 언젠가는 익숙해지겠지.
강의 뒤에 문제를 열 두개씩 푸는 방법은 하다보니 오히려 강의만 듣고 복습하는 것보다 학습에 도움이 많이 되는 것 같아 긍정적인 마음으로 풀고 있다. 이제 내일 옵셔널만 하면 기초 문법은 끝인 것 같은데 그 뒤로 이어지는 수많은 프로젝트들이 기대도 되고 걱정도 된다.
⭐️ 1. 프로토콜: 어느 타입이 어떠한 메서드와 프라퍼티를 가질지를 알려줌. 프로토콜의 인스턴스는 바로 만들어내지 못하지만 해당 프로토콜에 순응하는 구조체를 만들어줄 수는 있다.
protocol Identifiable {
var id: String { get set }
}
struct User: Identifiable {
var id: String
}
get: can be read
set: can be written
there is no set-only properties
⭐️ 2. 프로토콜 상속: 클래스에서처럼 다른 프로토콜을 상속할 수 있는데, 차이점은 여러 개의 프로토콜로부터 상속받을 수 있다는 점이다.
protocol SuperOne { }
protocol SuperTwo { }
protocol SuperThree { }
protocol SubProtocol: SuperOne, SuperTwo, SuperThree { }
⭐️ 3. 익스텐션: 특정 타입에 메서드나 프라퍼티를 추가해줄 수 있는 기능. 해당 타입이 원래 가지고 있지 않던 기능들을 수행할 수 있게 해준다.
extension Int {
func squared() -> Int {
return self * self
}
}
let number = 8
number.squared()
extension Int {
var isEven: Bool {
return self % 2 == 0
}
}
// 익스텐션에는 stored property는 추가할 수 없다. computed properties만 가능
⭐️ 4. 프로토콜 익스텐션: 프로토콜은 어떤 메서드와 프라퍼티를 가지는지는 명시해주지만 해당 메서드들의 구현은 하지 않는다. 반면 프로토콜 익스텐션은 프로토콜에 메서드와 computed properties를 추가할 수 있게 해준다. 즉, 프로토콜은 메서드 구현을 할 수 없지만 프로토콜 익스텐션에서는 가능.
'개발_iOS > 스위프트' 카테고리의 다른 글
[Swift] 100 Days of Swift - Day 13 정리 (0) | 2022.04.01 |
---|---|
[Swift] 100 Days of Swift - Day 12 정리 (0) | 2022.03.31 |
[Swift] 100 Days of Swift - Day 10 정리 (0) | 2022.03.28 |
[Swift] 100 Days of Swift - Day 9 정리 (0) | 2022.03.28 |
[Swift] 100 Days of Swift - Day 8 정리 (0) | 2022.03.27 |