Ios 为什么可以';t我们在Swift中使用带增量运算符的for循环
而不是使用:Ios 为什么可以';t我们在Swift中使用带增量运算符的for循环,ios,swift,Ios,Swift,而不是使用: for (n = 1; n <= 5; n++) { print(n) } //产出:12345 “我当然愿意考虑放弃C-style for-loop。 在我看来,这是Swift的一个很少使用的功能,它不携带 重量。移除它们的许多原因与基本原理一致 用于删除--and++。“ --克里斯·拉特纳 有一个关于增量的建议 这些操作员增加了首先学习Swift的负担 编程语言-或任何其他您还不知道的情况 这些运算符来自不同的语言 它们的表达优势是最小的-x++比x短不了多少 +
for (n = 1; n <= 5; n++) {
print(n)
}
//产出:12345
“我当然愿意考虑放弃C-style for-loop。
在我看来,这是Swift的一个很少使用的功能,它不携带
重量。移除它们的许多原因与基本原理一致
用于删除--and++。“
--克里斯·拉特纳
有一个关于增量的建议
这些操作员增加了首先学习Swift的负担
编程语言-或任何其他您还不知道的情况
这些运算符来自不同的语言
它们的表达优势是最小的-x++比x短不了多少
+=1
Swift与C的区别在于=、+=和其他
类似赋值的操作返回Void(有很多原因)。
这些运算符与该模型不一致
Swift具有强大的功能,消除了许多常见的原因
在其他语言中,您可以在C风格的for循环中使用++i,因此
在编写良好的Swift代码中使用相对较少。这些
功能包括for in循环、范围、枚举、映射等
实际使用这些运算符的结果值的代码通常是
对于代码的读者/维护者来说,这是令人困惑和微妙的。他们鼓励
“过于棘手”的代码可能很可爱,但很难理解
虽然Swift有定义良好的求值顺序,但是
依赖它(比如foo(++a,a++)),即使是
定义明确
这些运算符适用于相对较少的类型:整数和
浮点标量和类似迭代器的概念。它们不适用
复数、矩阵等
最后,这些没有达到“如果我们还没有这些,
我们会将它们添加到Swift 3中吗?”
关于环呢
for in和stride都使用
快速连贯的方法,而不受遗留术语的限制
使用for循环有一个明显的表达缺陷
在简洁性上与for相比
for循环实现不适合用于
集合和其他核心Swift类型
for循环鼓励使用一元递增和递减,
这将很快从语言中删除
分号分隔的声明提供了一条陡峭的学习曲线
来自非C类语言的用户
如果for循环不存在,我怀疑它是否会被考虑用于
纳入Swift 3
你为什么要这么做?你得到的结果没有这个,对吗?
1…5
是一个范围
<代码>对于1…5中的n更等同于每个循环中的a。范围是可枚举的,因此可以对其进行迭代。当您使用classic for循环时,您告诉编译器如何手动枚举数组,它的方向是什么(n++或n-),Swift和classic或c-style for循环中实际上不需要它。“为什么我们不能使用?”和“为什么我们没有使用?”这是两个不同的问题。如果您想在Swift中使用递增/递减运算符,我建议您查看stride
for n in 1...5 {
print(n)
}