gpt4 book ai didi

swift - 在 Swift 中,如何根据声明为 var 还是 let 来对类进行不同的实现?

转载 作者:可可西里 更新时间:2023-11-01 00:53:49 26 4
gpt4 key购买 nike

在 swift 中,Array 和 Dictionary 类都有不同的实现,具体取决于您将它们声明为变量还是常量。我的问题是这种类型的功能可以用在您定义的类上吗,还是为 Array、Dictionary 保留?

最佳答案

Array 和 Dictionary 的实现对于变量和常量没有区别——相反,mutating 方法(改变结构任何部分的值的方法)只能为变量调用(声明为var) 但不能为常量调用(用 let 声明)。

也就是说:

struct MyType {
var name: String

func capitalizedName() -> String {
return name.capitalized()
}

mutating func setName(newName: String) {
self.name = newName
}
}

var myVariable = MyType(name: "Foo")
myVariable.setName("Bar")
println(myVariable.capitalizedName()) // print BAR

let myConstant = MyType(name: "Baz")
// not allowed by compiler:
// myConstant.setName("Nope!")

关于swift - 在 Swift 中,如何根据声明为 var 还是 let 来对类进行不同的实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24987625/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com