在阅读关于放弃对Swift的增量/递减运算符的支持的文章时,我读取了这样的文本“Swift已经偏离C,因为=,=和其他分配类操作返回Void(由于多种原因)”.
所以在过去的某个时候,开发商有意识地决定评估任务由于某些原因而失效.
我正在寻找这些历史(现在)的原因.很像这个线程是关于Scala的历史原因.
在阅读关于放弃对Swift的增量/递减运算符的支持的文章时,我读取了这样的文本“Swift已经偏离C,因为=,=和其他分配类操作返回Void(由于多种原因)”.
所以在过去的某个时候,开发商有意识地决定评估任务由于某些原因而失效.
我正在寻找这些历史(现在)的原因.很像这个线程是关于Scala的历史原因.
if (x = 2)
代替
if (x == 2)
较新版本的编译器为上述情况引入了具体的警告,但是哇有一个缺少等号的代码在我的代码中导致难以识别的错误.
使用Swift类型的系统,这将不是一个问题,因为返回的值很可能不符合BooleanType协议,但如果它(如果x = false),您可能仍然会遇到这些错误.许多Swift旨在消除人们遇到的常见错误原因,包括此类错误.
这在Swift编程语言书籍“Basic Operators”:
Unlike the assignment operator in C and Objective-C,the assignment
operator in Swift does not itself return a value. The following
statement is not valid:06002
This feature prevents the assignment operator (=) from being used by accident when the equal to operator (==) is actually intended. By making if x = y invalid,Swift helps you to avoid these kinds of errors in your code.