Swift 3 移除了 C 语言风格的 for 循环,移除了++/--语法,如何调整步长值呢?

2016-06-15 23:06:51 +08:00
 vvard3n
for var i in 1...10 {
    print("\(i)")
    i+=2
}

貌似这样也不行

直接输入 for 敲回车的话自动生成模板的话是下面这样

for *item* in *items* {

   *code*

}
8498 次点击
所在节点    程序员
21 条回复
arden
2016-06-15 23:14:29 +08:00
感觉苹果真的也是醉了,用户都习惯这语法,偏要重新搞一套出来,我就不明白++, --有什么不好?
fcicq
2016-06-15 23:19:27 +08:00
查了下用 0.stride(to: 10, by: 2) 就和 python 的 range 差不多了. var 不能写在 for..in 里.
vvard3n
2016-06-15 23:28:50 +08:00
```
for var i in stride(from: 0, to: 10, by: 2) {
print("\(i)")
}
```

这样就可以了。。。
fcicq
2016-06-15 23:31:46 +08:00
@vvard3n var 竟然可以写里面... 不过不好看啊.
free9fw
2016-06-15 23:37:02 +08:00
for var i in 1...10 {
if i % 2 == 0 {
print("\(i)")
i+=2
}
}
miyuki
2016-06-15 23:38:58 +08:00
Swift 从精通到重学
loveuqian
2016-06-15 23:44:48 +08:00
只能呵呵了,我敲 for 都没提示的
要我自己手动敲 for xxx in xxx
真累
Tuccuay
2016-06-15 23:46:01 +08:00


🌚
congeec
2016-06-16 00:28:22 +08:00
Apple : Python 大法好
tutuge
2016-06-16 00:29:36 +08:00
@arden ++ -- 很容易造成基础不扎实的乱用=。=,“附带伤害”大。。。
mko0okmko0
2016-06-16 00:32:09 +08:00
@tutuge 同意
我想说的你概括了
yyfearth
2016-06-16 02:43:20 +08:00
@arden @miyuki 我想因为 Apple 想让熊孩子学 Swift
RqPS6rhmP3Nyn3Tm
2016-06-16 02:56:38 +08:00
Apple: 虽然我出了一个新语言,但是我的终极目标是让你们都学 Python
lightening
2016-06-16 04:37:29 +08:00
我没学过 Swift ,不过随便搜了一下好像有

for index in 1...100 {
...
}

Ruby 也是这样的。虽然写了几年 Ruby 从来没用过 for ……
lightening
2016-06-16 04:40:34 +08:00
不好意思没看清问题。不过很好奇在什么情况下你需要调整步长值呢?
tzheng
2016-06-16 06:50:29 +08:00
2 楼正解 stride 的参数可以有 from, to 和 by 步长可以为负可以是浮点
qiukun
2016-06-16 11:02:36 +08:00
调步长用 while
kideny
2016-06-16 12:43:14 +08:00
王垠大师不是喷过, swift 的设计者是编译器专家,不是 PL 专家嘛。
哈哈!
WenhaoWu
2016-06-16 16:05:08 +08:00
for i in 1...20 step 2{
print(i) // 1 3 5...
}
快来我 kotlin 神教
jason19659
2016-06-16 16:53:50 +08:00
慢慢都都变成函数式的语法了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/286047

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX