0

为什么我们不能从 Swift 中的实例方法中为结构、枚举等值类型更改实例属性?为什么同样的事情适用于像类这样的引用类型?

在此处输入图像描述

在 struct 中执行 mutating func 使其行为类似于类实例方法?

4

1 回答 1

1

Swift 的设计深受 Haskell、F#、Scala、Erlang 等函数式编程语言的影响。函数式编程的核心原则之一是数据是不可变的。函数对数据进行操作并因此产生新值,而不是在适当的位置修改数据,从而消除副作用。这些影响在 Swift 中的许多地方都可以看到,例如不可变值类型、map 函数、lambda 函数、可选值和模式匹配(Swift 中的 switch)。

于 2015-02-06T15:03:49.020 回答