,为什么这段代码会产生错误:
URL(string:"string a”)!.appendPathComponent(“string b”)
错误:'Cannot use mutating member on immutable value: function call returns'
此代码有效:
var url: URL=URL(string: "string a")!
url.appendPathComponent(“string b")
答案 0 :(得分:1)
是的,当然会发生这种情况。因为你试图改变不可变的值,这是不可能的。
你可以看到URL()是struct(value)类型,它的初始化器var url: URL=URL(string: "string a")!
url.appendPathComponent(“string b")
返回你不可变的副本。
你说下面的代码正在运行。
url
因为,您正在appendPathComponent
变量中创建该URL结构的可变副本。而且你也可以看到get_rdf_explorer.get_rdf_locomotive_detail
是变异函数。所以你可以对那个可变副本进行修改。