gpt4 book ai didi

swift - 可以为结构内的函数推断 'mutating' 吗?

转载 作者:行者123 更新时间:2023-11-28 07:17:50 24 4
gpt4 key购买 nike

为什么我们需要明确地为结构中的函数指定 mutating?编译的时候不能从函数体中自动推断出来吗?如果它不能,你能给我一个它不能的例子吗...

最佳答案

有一些特殊的例子,当编译器无法推断可变性时,因为程序员决定是否应该将行为视为可变的。

例如,当结构由类备份时:

struct MyArray<T : AnyObject> {
let buffer: NSMutableArray = NSMutableArray()

func append(item: T) {
buffer.addObject(item)
}
}

let myArray = MyArray<NSString>()
myArray.append("something")

请注意,append 函数正在修改结构,但它没有 mutating 属性,因此您甚至可以在常量变量上使用它。如果你想阻止这种情况,你需要添加 mutating 属性。

我没有无意中选择数组示例。 Swift 中的字典和数组由类支持,他们必须选择哪些方法会发生变异,哪些不会。

关于swift - 可以为结构内的函数推断 'mutating' 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24607037/

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