Swift 3 documentation表示参数是不可变的:
默认情况下,函数参数是常量。
传递给函数时,还会复制states that个值类型:
字符串,数组和字典在传递给函数或方法时会被复制。
那么,为什么参数都不可变和复制?如果参数是常数,那么我们在函数的范围内不需要它的值的副本。如果复制了参数,则无法在函数中修改传入的原始变量(对于值类型)。
此外,不变性似乎不方便,因为我们无法在不首先将其(再次)明确复制到局部变量的情况下对参数进行局部更改。
我是否错误地阅读了文档?有这么好的理由吗?
答案 0 :(得分:5)
此处描述的动机如下:https://github.com/apple/swift-evolution/blob/master/proposals/0003-remove-var-parameters.md
tl; dr :它避免与inout
关键字混淆。