Ent*_*ize 2 ios swift xcode6 ios8
在苹果网站上,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)
Run Code Online (Sandbox Code Playgroud)
错误:
游乐场执行失败:TestPlayground2.playground:12:17:错误:无法分配给'人'中的'lastName'person.lastName ="ChangedLastName"~~~~~~~~~~~~~~~~ ^
小智 7
如果该结构被声明为var,则只能修改结构的属性let.即使你的属性是var,因为结构let是不可变的.
var person = people(firstName: "InitialFirstName", lastName: "InitialLastName")
person.lastName = "ChangedLastName" //No problem!
Run Code Online (Sandbox Code Playgroud)
请注意,这与类的行为不同.即使类的实例是常量,也可以更改类的可变属性.
与class引用类型不同的struct是值类型。
您必须将实例声明为可变的
var person = people(firstName: "InitialFirstName", lastName: "InitialLastName")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
999 次 |
| 最近记录: |