りんごの例here "クラスは参照型です"とは、クラスオブジェクトが他の言語(C、C++、Objective-C)のポインタに似ており、定数オブジェクトの値を変更できることを意味します。letまたはvarキーワードでクラスオブジェクトを作成しますか?
これは、クラスオブジェクト(常に定数オブジェクトを作成するか、変数オブジェクトを作成する)を作成するための好ましい方法です。私が作成してテストするときには、両方とも同じ方法で動作しています。そして、クラスオブジェクトに関して "letとvar"の違いは何ですか?
class Student {
var name: String
init(name: String) {
self.name = name
}
}
私はクラスのクラスの変数オブジェクトを作成します。
var student = Student(name: "student name")
student.name = "Raj"
print("name = \(student.name)")
は、私が定数オブジェクトを作成したときに動作します。
let student = Student(name: "studentName")
student.name = "Raj"
print("name = \(student.name)")
どちらもOKのタイプを参照するため、両方とも値を変更できます。しかし、どのクラスがクラスオブジェクトを作成するための好ましい方法であるのか、クラスオブジェクトの観点からどのような違いがあるのかを知りたい。
異なる結果を得るために両方が使用されているため、一方を他方よりも優先することはできません。 'name'プロパティを' var'ではなく 'let'として定義すると、オブジェクトの初期化後に名前を編集できないことがわかります。 – Laffen
「クラスオブジェクト」という用語を使用しないでください。これはObjective-Cのような言語で使用され、クラスはそれ自体がオブジェクトです。あなたが話しているのは、クラスのインスタンス_です。 – gnasher729