Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 为什么可以';t我们在Swift中使用带增量运算符的for循环_Ios_Swift - Fatal编程技术网

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)
}