代码之家  ›  专栏  ›  技术社区  ›  Tim

Kernel.loop方法需要“do”。不允许使用半导体?

  •  3
  • Tim  · 技术社区  · 17 年前

    do 关键字用于分隔语句的末尾,如 until

    until x == 100 do puts x; x+=1 end 
    
    until x == 100; puts x; x+=1 end 
    

    Kernel.loop .

    x=0    
    loop do puts x; x+=1; break if x == 100 end
    
    x=0    
    loop; puts x; x+=1; break if x == 100 end # => error
    

    事情是这样的有原因吗?

    1 回复  |  直到 11 年前
        1
  •  6
  •   vladr    17 年前
    • loop 是一种方法(in Kernel )这真的需要一个块 do...end { } .
    • while until 是陈述(如 if ),并且不要期望出现阻塞。这 do while x == 100 { puts x; x+=1; } 会惨败,而 loop { puts x; x+=1; break if x == 100 }

    在这两种情况下意味着不同的事情。假使 循环 (和其他方法)它确实表示一个块;假使 , 直到 then 在...之后 不要被误导。