代码之家  ›  专栏  ›  技术社区  ›  Marc Vitalis

在Ruby中,操作符代表什么?[复制品]

  •  19
  • Marc Vitalis  · 技术社区  · 16 年前

    可能重复:
    What does ||= (or equals) mean in Ruby?

    在谷歌中搜索这个很难,因为它是一个符号,而不是文本。

    什么? ||= 代表什么?

    它是如何工作的?

    5 回复  |  直到 9 年前
        1
  •  24
  •   peku    16 年前

    如果尚未指定值,它将指定一个值。这样地:

    a = nil
    a ||= 1
    
    a = 1
    a ||= 2
    

    在第一个示例中,a将设置为1。在第二个例子中,a仍然是1。

        2
  •  7
  •   Community Mohan Dere    9 年前

    从这个问题 Common Ruby Idioms :

    等于

     if a == nil || a == false   
        a = b 
     end
    
        3
  •  1
  •   lutz    16 年前

    如果b为零,则将a赋给它。

    a = :foo
    b ||= a
    # b == :foo
    

    如果b不是零,不要改变它。

    a = :foo
    b = :bar
    b ||= a
    # b == :bar
    
        4
  •  1
  •   knittl    16 年前

    我只能猜测,但我假设它代表一个逻辑运算符,并结合设置一个变量(如^=、+=、*=在其他语言中)。

    所以 x ||= y 是一样的 x = x || y

    编辑:我猜对了,看 http://phrogz.net/ProgrammingRuby/language.html#table_18.4

    x= x y y 方法:如果设置,则使用x,否则指定y。它可用于确保变量至少已初始化(为0,为空数组等)。

        5
  •  0
  •   pavium    16 年前

    这是一个“缩写的赋值”(见Ruby Pocket参考,第10页)

    A=B

    (意味着a是由a,b的逻辑或构成的值

    变成

    A=B

    几乎所有的操作符都有一个缩写版本(+=*=&&=etc)。

    推荐文章