V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
vvard3n
V2EX  ›  程序员

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

  •  
  •   vvard3n · 2016-06-15 23:06:51 +08:00 · 8487 次点击
    这是一个创建于 2862 天前的主题,其中的信息可能已经有所发展或是发生改变。
    for var i in 1...10 {
        print("\(i)")
        i+=2
    }
    

    貌似这样也不行

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

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

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


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

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

    Ruby 也是这样的。虽然写了几年 Ruby 从来没用过 for ……
    lightening
        15
    lightening  
       2016-06-16 04:40:34 +08:00
    不好意思没看清问题。不过很好奇在什么情况下你需要调整步长值呢?
    tzheng
        16
    tzheng  
       2016-06-16 06:50:29 +08:00 via iPhone
    2 楼正解 stride 的参数可以有 from, to 和 by 步长可以为负可以是浮点
    qiukun
        17
    qiukun  
       2016-06-16 11:02:36 +08:00 via Android
    调步长用 while
    kideny
        18
    kideny  
       2016-06-16 12:43:14 +08:00
    王垠大师不是喷过, swift 的设计者是编译器专家,不是 PL 专家嘛。
    哈哈!
    WenhaoWu
        19
    WenhaoWu  
       2016-06-16 16:05:08 +08:00
    for i in 1...20 step 2{
    print(i) // 1 3 5...
    }
    快来我 kotlin 神教
    jason19659
        20
    jason19659  
       2016-06-16 16:53:50 +08:00
    慢慢都都变成函数式的语法了
    jackisnotspirate
        21
    jackisnotspirate  
       2016-06-16 17:05:38 +08:00
    for x in sequence(first: 0.1, next: { $0 * 2})
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1017 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 20:11 · PVG 04:11 · LAX 13:11 · JFK 16:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.