[英]How to change a variable stored property in a structure in Swift?
在苹果网站上, https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Properties.html声明我们可以更改结构中的变量属性。 我正在尝试更改此人的姓氏。 但是,我在该行代码处收到错误。 感谢你们对我的帮助。
import UIKit
struct people {
let firstName : String
var lastName : String
}
let person = people(firstName: "InitialFirstName", lastName: "InitialLastName")
person.lastName = "ChangedLastName" //<-- error
println(person.firstName)
println(person.lastName)
错误:
Playground 执行失败:TestPlayground2.playground:12:17: 错误:无法分配给 'person' 中的 'lastName' person.lastName = "ChangedLastName" ~~~~~~~~~~~~~~~ ^
您只能修改结构体的属性,如果该结构体被声明为var
,而不是let
。 即使你的财产是var
,因为结构是let
是不可变的。
var person = people(firstName: "InitialFirstName", lastName: "InitialLastName")
person.lastName = "ChangedLastName" //No problem!
请注意,这是与类不同的行为。 即使类的实例是常量,也可以更改类的可变属性。
与引用类型struct
不同的class
是值类型。
您必须将实例声明为可变的
var person = people(firstName: "InitialFirstName", lastName: "InitialLastName")
通过使用“let”语法,您已将“person”声明为常量,这意味着它的属性无法更改。 只需将“let”更改为“var”,错误就会消失。
这是有关swift 中let
和var
之间区别的更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.