gpt4 book ai didi

arrays - 无法将字符串 append 到 Swift 中的可变数组

转载 作者:行者123 更新时间:2023-11-28 14:26:06 27 4
gpt4 key购买 nike

上下文 - 我目前正在学习 Swift Struct。所以我决定在 Playground 中创建自己的 Phone 结构。 (见下文)

问题 -phone 结构上的 downloadApp 方法抛出以下错误。不能在不可变值上使用可变成员:'self' 是不可变的

期待结果 - 和平地将新字符串 append 到我的 apps 属性,这是一个字符串数组。

Swift代码

struct Phone {
let capacity : Int
let Brand : Sting
var name: String
let model: String
var apps: [String]
var contacts: [String]

var formatCapacity: String {
return "\(capacity)GB"
}

func downloadApp(name: String){
apps.append(name) // ERROR
}
}

最佳答案

您只需将downloadApp 标记为mutating。该问题是由于 downloadApp 是在 struct 类型中声明的,这是一种值类型,因此如果您更改任何属性(即 apps array here) 的结构,你实际上改变了结构本身。通过将函数标记为 mutating,编译器允许通过该类型的成员函数对结构进行此类修改。

mutating func downloadApp(name: String){
apps.append(name)
}

关于arrays - 无法将字符串 append 到 Swift 中的可变数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51527157/

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