[swift]値タイプ参照タイプスタック領域
値タイプ/参照タイプ、スタック領域/ヒップ領域
SWIFTを勉強している人なら、飽きて入ってきたり、聞いていたり、飛ちゃんとして問い詰められたり…面接でよくある質問というキーワード
自由なMomoになりたいので整理しておきましょう
値タイプと参照タイプの違いは?
値タイプは、宣言のたびに値をコピーして使用します.元々影響はありません.
参照タイプとは、元のアドレス値です.変更時にも元々変更されます.
let a = Person()
let b = a
上記の場合、b
はa인스턴스가 위치한 주소
を指す.b의 프로퍼티
を変更すると、b가 가리키는 주소값
のa의 데이터
が変更されます.では、次の状況はどうでしょうか.
class Person {
var name = ""
var age = 100
}
let a = Person()
let b = a
b.name = "horeng"
let
と発表されたb
の프로퍼티
に変更します.可能ですか.
はい。
この場合、
let
と宣言されたのはb가 가리키고 있는 주소
のみである.let a = Person()
let another = Person()
let b = a
b = another
こんなんじゃだめだ.つまり、
let으로 클래스를 선언한다는 것
を発表したとき、この住所を示すだけです.変更不可!当たり前のことです.これはただ何もない矢印です!参照したaインスタンスが消えたら、bはどうなるのでしょうか。
これはARCについて理解する必要があります.ARCに関する内容は以下のリンクで表示できます.
(あとでARC関連記事でブログリンクします)…ほほほ
なぜアイデンティティを使用するときにクラスを使用するのですか?
Classが頭文字Riserを必要とする理由は?
参考にしていた番組が消えたらどうなりますか?
(修正中です.)
Reference
この問題について([swift]値タイプ参照タイプスタック領域), 我々は、より多くの情報をここで見つけました https://velog.io/@horeng2/Swift-값타입참조타입스택영역힙영역テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol