Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在Swift中更改结构中存储的变量属性?_Ios_Swift_Ios8_Xcode6 - Fatal编程技术网

Ios 如何在Swift中更改结构中存储的变量属性?

Ios 如何在Swift中更改结构中存储的变量属性?,ios,swift,ios8,xcode6,Ios,Swift,Ios8,Xcode6,在苹果网站上, 它表明我们可以更改结构中的变量属性。我正试图改变那个人的姓。然而,我在那行代码中收到了一个错误。谢谢你帮助我 import UIKit struct people { let firstName : String var lastName : String } let person = people(firstName: "InitialFirstName", lastName: "InitialLastName") person.lastName = "C

在苹果网站上, 它表明我们可以更改结构中的变量属性。我正试图改变那个人的姓。然而,我在那行代码中收到了一个错误。谢谢你帮助我

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)
导入UIKit
结构人{
让firstName:String
var lastName:String
}
让person=people(firstName:“InitialFirstName”,lastName:“InitialLastName”)

person.lastName=“ChangedLastName”//如果结构声明为
var
,而不是
let
,则只能修改该结构的属性。即使您的属性是
var
,因为结构是
let
,所以它是不可变的

var person = people(firstName: "InitialFirstName", lastName: "InitialLastName")
person.lastName = "ChangedLastName" //No problem!

请注意,这与类的行为不同。即使类的实例是常量,也可以更改类的可变属性。

不同于
,它是引用类型
结构
是值类型。
您必须将实例声明为可变的

var person = people(firstName: "InitialFirstName", lastName: "InitialLastName")

通过使用“let”语法,您已将“person”声明为常量,这意味着它的属性无法更改。只要将“let”更改为“var”,错误就会消失


这里有更多关于这个的信息。

我忘了我的人是个“let”。谢谢