5일차 - 21.06.22
학습키워드
- review(복습) - 3
1. Properties
구조체와 클래스는 자체 변수와 상수를 가질 수 있으며, 이를 속성이라고 합니다.
내부의 속성을 사용하여 메서드를 사용할 수도 있습니다.
속성관찰자
didSet
: 속성이 변경 된 후oldValue
: 변경되기전 속성값을 포함하기 때문에 호출할 수 있습니다.
willSet
: 속성이 변경 되기 전newValue
새로운 속성값을 포함하기 때문에 호출할 수 있습니다.
연산프로퍼티
struct Person {
var age: Int
var ageInDogYears: Int {
get {
return age * 7
}
}
}
var fan = Person(age: 25)
print(fan.ageInDogYears)
- 데이터 읽기전용으로 사용하려는 경우
get {}
는 생략이 가능합니다.
var ageInDogYears: Int {
return age * 7
}
2. Static properties and methods
static
(정적)을 사용하면 타입의 인스턴스가 아니지만 속성과 메서드를 사용할 수 있습니다. 공유하는 값을 저장하여 의미있게 구성하는데 유용합니다.
3. Access control
접근제어자를 사용하여 구조체및 클래스 내부의 데이터 중 외부에 노출되어야 하는 것을 지정할 수 있습니다.
- Public : 모든사람이 읽고 쓸수 있습니다.
- Internal : 같은 프로젝트내에서만 읽고 쓸수 있습니다. 다른 사람이 사용할 수 있는 프레임워크로 코드를 제공하면 읽을 수 없습니다.
- File Private : 타입과 동일한 파일에있는 경우에만 읽고 쓸수 있습니다.
- Private : 가장 제한적인 옵션이며, 타입 또는 타입확장에 속하는 경우에만 읽고 쓸수 있습니다.
4. Polymorphism and typecasting
클래스는 상속이 가능합니다. 상속받은 클래스는 추가하고 싶은 경우 추가할 수 도있고 추가하고 싶지 않은 경우 아무것도 추가하지 않을 수 있습니다.
Polymorphism(다형성) : 객체지향 프로그래밍의 다형성은 주로 오버라이딩과 오버로딩을 의미
타입캐스팅 : 타입의 객체를 다른 타입으로 변환하는 것
- as? : 옵셔널 캐스팅 (실패해도 앱 중단이 되지 않습니다.)
- as! : 강제 캐스팅 (실패하면 앱이 중단됩니다.)
타입캐스팅은 알지못하는 타입을 알고있는 타입으로 변환할 때 사용하는 것입니다. 강제로 관계가없는 타입끼리 변환을 할 수 없습니다.
// MARK: - 정수를 문자열로 강제캐스팅은 불가능
let number = 5
let text = number as! String
// MARK: - 관계가 있는 타입으로 변경후 캐스팅
let number = 5
let text = String(number)
print(text)
- 상속과 다형성 번역 블로그 - Hohyeon Moon
5. Closures
클로저는 코드를 보유하는 변수로 생각할 수 있습니다.
클로저는 생성될 때 내부에서 사용될 값의 복사본을 가져옵니다.
클로저는 마지막 매개변수인 경우 매개변수를 제거하고 중괄호 안에 코드블록을 제공할 수 있습니다.
Swift 용어 해설 링크
링크
100 Days of Swift - Day 15 - Hacking with Swift
Author And Source
이 문제에 관하여(5일차 - 21.06.22), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sookim-1/15일차-21.06.22저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)