Swift 3 documentation声明参数是不可变的:
Function parameters are constants by default.
它也是states that值类型在传递给函数时被复制:
Strings, arrays, and dictionaries are copied when they are passed to a function or method.
那么,为什么参数都不可变且被复制?如果参数是常量,那么我们不需要在函数范围内复制它的值。如果参数被复制,那么传入的原始变量不能在函数中修改(对于值类型)。
此外,不可变性似乎很不方便,因为我们不能在不首先明确地将参数复制(再次)到局部变量的情况下对参数进行局部更改。
我是否错误地阅读了文档?出现这种情况是否有充分的理由?
最佳答案
这里描述了这样做的动机:https://github.com/apple/swift-evolution/blob/master/proposals/0003-remove-var-parameters.md
tl;dr:它避免了与 inout
关键字混淆。
关于swift - 为什么函数参数在 Swift 中是不可变的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40268619/