9-2. クラス(class)
2435 ワード
クラスと参照タイプ(参照タイプ)
クラスは参照タイプです.値タイプとは対照的に、変数または定数に割り当てられたり、関数に渡されたりすると、参照タイプはコピーされません.レプリカへの参照ではなく、存在する同じインスタンスへの参照です.let tenEighty = VideoMode()
tenEighty.resolution = hd
tenEighty.interlaced = true
tenEighty.name = "1080i"
tenEighty.frameRate = 25.0
//다음의 예시는 새로운 상수를 선언하고 VideoMode의 클래스 인스턴스를 참조하도록 설정했다.
//그러면 이제 클래스에 유저가 원하는 데이터들을 써 넣은 새로운 붕어빵 하나가 생겼다.
let alsoTenEighty = tenEighty
alsoTenEighty.,frameRate = 30.0
//클래스는 참조 타입이기 때문에 두개의 상수는 실질적으로 같은 VideoMode인스턴스를 참조한다.
//실제로는 같은 하나의 인스턴스에 tenEighty랑 alsoTenEighty라는 이름을 가지고 있는 것이다.
print(tenEighty.frameRate)
//다음과 같은 경우 30을 출력한다. 25.0을 출력하지 않는다.
識別演算子
let tenEighty = VideoMode()
tenEighty.resolution = hd
tenEighty.interlaced = true
tenEighty.name = "1080i"
tenEighty.frameRate = 25.0
//다음의 예시는 새로운 상수를 선언하고 VideoMode의 클래스 인스턴스를 참조하도록 설정했다.
//그러면 이제 클래스에 유저가 원하는 데이터들을 써 넣은 새로운 붕어빵 하나가 생겼다.
let alsoTenEighty = tenEighty
alsoTenEighty.,frameRate = 30.0
//클래스는 참조 타입이기 때문에 두개의 상수는 실질적으로 같은 VideoMode인스턴스를 참조한다.
//실제로는 같은 하나의 인스턴스에 tenEighty랑 alsoTenEighty라는 이름을 가지고 있는 것이다.
print(tenEighty.frameRate)
//다음과 같은 경우 30을 출력한다. 25.0을 출력하지 않는다.
if tenEighty == alsoTenEighty {
print("They refers to the same class!"
}
//두 상수가 같은 클래스를 참조한다고 출력된다. 다음과 같이 조건문을 통해서 확인 가능하다.
Reference
この問題について(9-2. クラス(class)), 我々は、より多くの情報をここで見つけました https://velog.io/@devleeky16498/9-2.-클래스classテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol