在 Swift 中,为什么这段代码会产生错误:
URL(string:"string a")!.appendPathComponent("string b")
错误:“不能在不可变值上使用可变成员:函数调用返回”
当这段代码有效时:
var url: URL=URL(string: "string a")!
url.appendPathComponent(“string b”)
最佳答案
是的,这当然会发生。因为您正在尝试更改不可变的值,这是不可能的。
你可以看到 URL() 是 struct(value) 类型,它的初始化器 URL(string: )
返回给你不可变的副本。
你说下面的代码是有效的。
var url: URL=URL(string: "string a")!
url.appendPathComponent(“string b")
因为,您正在 url
变量中创建该 URL 结构的可变副本。您还可以看到 appendPathComponent
是变异函数。这样您就可以对该可变副本应用修改。
关于swift - url.appendPathComponent 产生错误不能在不可变值 : function call returns 上使用变异成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45409423/