url.appendPathComponent产生一个errorCannot使用不可变值的变异成员:函数调用返回

时间:2017-07-31 07:07:02

标签: swift url

在Swift中

,为什么这段代码会产生错误:

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")

1 个答案:

答案 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是变异函数。所以你可以对那个可变副本进行修改。