[swift] 7. struct vs class
📖 structとclassの違い
struct
は복사
class
は공유
ですすなわち、
struct
は、参照された値に影響を与えるのではなく、既存の値に影響を与える.💬 YouTubeの1ページ目を思い出して各ビデオに対応する領域に表示される情報には、名前、ビデオサムネイル、url、およびブラウズ回数が含まれる.与えられたデータ型を1つずつ管理するのは難しいため、プログラミングでは
class
にデータを集中して管理します.💬 モデルにデータを整理するには、次の2つの方法があります.
📌 struct
struct
모델
{ 구조체 이름
}ex)
struct YoutuberStruct {
var name : String
var subscribersCount : Int
}
💬 宣言された構造体に2つの情報を入力できます.var devJeong = YoutuberStruct(name:"정대리", subscribersCount: 99999)
💬 必要な情報を含む構造を구조체 내용
の名義で宣言した.var devJeongClone = devJeong
💬 devJeong
のdevJeong
をコピーすると発表しました.print("값 넣기 전 devJeongClone.name : \(devJeongClone.name)")
>>> 값 넣기 전 devJeongClone.name : 정대리
💬 devJeongClone
のname値はdevJeongClone
と同じです.devJeongClone.name = "하하"
💬 次に、devJeong
のname値を変更します.print("값 넣은 후 devJeongClone.name : \(devJeongClone.name)")
print("값 넣은 후 devJeong.name : \(devJeong.name)")
>>> 값 넣은 후 devJeongClone.name : 하하
값 넣은 후 devJeong.name : 정대리
💬 その結果,devJeongClone
の内部値は変化したが,devJeongClone
には影響しなかった.」構造のコピー後、他のオブジェクトに影響する(Xに影響する)
📌 class
class
devJeong
{ class 이름
}ex)
struct YoutuberClass {
var name : String
var subscribersCount : Int
// 메모리에 올린다! 시작한다! - 생성자
// 두 변수에 값이 없음
// init으로 매개변수를 가진 생성자 메소드를 만들어야
// 매개변수를 넣어서 그 값을 가진 객체(object)를 만들 수 있다.
init(name:String, subscribersCount: Int) {
self.name = name // 외부에서 넘어오는 name 값을 넣을게요
self.subscribersCount = subscribersCount
}
}
💬 宣言されたクラスに2つの情報を入力できます.(構造体とは異なり、作成者を特定)var jeongDaeRi = YoutuberClass(name:"정대리", subscribersCount: 99999)
var jeongDaeRiClone = jeongDaeRi
print("값 넣기 전 jeongDaeRiClone.name : \(jeongDaeRiClone.name)")
>>> 값 넣기 전 jeongDaeRiClone.name : 정대리
💬 上記のようにclass 내용
というclassを作成し、jeongDaeRi
にコピーします.jeongDaeRiClone.name = "바보"
print("값 넣은 후 jeongDaeRiClone.name : \(jeongDaeRiClone.name)")
print("값 넣은 후 jeongDaeRi.name : \(jeongDaeRi.name)")
>>> 값 넣은 후 jeongDaeRiClone.name : 바보
값 넣은 후 jeongDaeRi.name : 바보
💬 structとは異なり、レプリケーション・クラスの値を参照して変更すると、既存のクラスの値にも影響を及ぼすことに気づく可能性があります.jeongDaeRiClone
は互いにつながっている.同じようなものを作ったら、一方を壊し、もう一方も破壊します.
私が修正した内容は他の人にも見られます.
同じメモリ容量を共有します.
💬 YouTubeで私のビデオ情報を修正すると、他の人にとって同じであることがわかりやすくなります.
Reference
この問題について([swift] 7. struct vs class), 我々は、より多くの情報をここで見つけました https://velog.io/@dlwogus0128/swift-7.-struct-vs-classテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol