使用let或var关键字创建类对象?

时间:2016-05-12 07:22:04

标签: ios swift

正如苹果所说here“类是引用类型”,意味着类对象就像其他语言中的指针(C,C ++,Objective-C),我们可以改变常量对象的值(让swift)。

然后,这是创建类对象的首选方法(始终创建常量对象或创建变量对象)。当我创建和测试两者都以相同的方式工作时,那么“let和var”在类对象方面的区别是什么。

class Student {
var name: String

    init(name: String) {
        self.name = name
    }
}

当我创建类Student的变量对象时。

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)")

两者都能够更改值,因为它们引用的类型是可以的。但是想知道哪个是创建类对象的首选方法,以及它们之间在类对象方面的区别。

1 个答案:

答案 0 :(得分:3)

如果使用let

创建了Student对象,则无法分配新对象
let student2 = Student(name: "mohan")
let student = Student(name: "sohan")

student = student2 // gives you an error.

但如果您使用var创建,则可以将学生对象更改为另一个对象,并指向另一个对象。

let student2 = Student(name: "mohan")
var student = Student(name: "sohan")

student = student2 // have ref  of student2
print(student.name) // gives you mohan

student.name = "rohan"

print(student.name) // rohan
print(student2.name) // rohan