关闭大括号以终止声明

时间:2015-01-13 22:24:53

标签: ruby

我试图探索在ruby中结束或终止语句的各种方法。我知道分号和新行。还有其他可能的方法吗?新行总是终止声明吗?另外,有什么好的编程习惯可以遵循?

2 个答案:

答案 0 :(得分:0)

分号在Ruby中不是一个好习惯。换行就足够了。仅当命令缩短代码而不失去人类可读性时,才使用分号分隔命令。例如,您可以使用分号:

posx = 0.0; posy = 0.0; posz = 0.0

而不是:

posx = 0.0
posy = 0.0
posz = 0.0

答案 1 :(得分:0)

  

还有其他可能的方法吗?

是。例如,在这样的条件表达式中:

if foo then bar else baz end

条件由then关键字终止,then-branch由else关键字终止,else-branch由end关键字终止。

  

新行总是终止声明吗?

没有。在许多情况下,Ruby可以告诉表达式尚未完成,在这种情况下,换行符不会终止表达式。

一些例子是

  • 没有右操作数的二进制中缀运算符:

    23 + 
      42
    
    foo = 
      42
    
  • 一元前缀运算符缺少其操作数:

    -
      42
    
    !
      false
    

    这是一段有趣的小代码:

    foo++
    bar
    
    # same as
    foo + +bar
    
    # same as
    foo.+(bar.+@)
    
  • 未公开的清单:

    puts(23, 
      42)
    
    foo, 
      bar = 23, 
        42
    
    [23, 
      42]
    
    {foo: 23, 
      bar: 42}
    
    def foo(bar, 
      baz) end
    
  • 一个未公开的文字:

    [
      23, 42
    ]
    
    {
      foo: 23, bar: 42
    }
    
    'foo
    bar'
    
    "foo
    bar"
    
    %w!
      hello
      world
    !
    
  • Hash字面值中缺少值:

    { :foo => 
      :bar, baz: 
      :quux }
    
  • 发送的邮件缺少要发送的邮件:

    23.
      to_s
    
  • 即便如此:

    23
      .to_s
    
  • 转换换行符也不会使其终止表达式:

    "foo" \
      "bar"
    

可能还有其他几个我不知道。