【问题标题】:What does "+=" (plus equals) mean?“+=”(加号)是什么意思?
【发布时间】:2011-11-30 02:39:28
【问题描述】:

我正在做一些 ruby​​ 练习,它说我需要返回并使用 += 速记符号重写脚本。

本练习主要涉及学习新方法。问题是,当我尝试在线查找时,我不知道+= 是什么意思。

【问题讨论】:

标签: ruby operators


【解决方案1】:

+= 是一个速记运算符。

someVar += otherVar

一样
someVar = someVar + otherVar

【讨论】:

  • 非常感谢您的帮助,感谢您的快速答复。
  • someVar = someVar + otherVarsomeVar = someVar.+(otherVar) 相同。随意编写自己的类并在其上实现+,您也可以拥有+= 的魔力!
  • 请注意,您(可能)需要在您的 + 函数中返回 self 以使 += 按预期工作。
  • 我有一些更高级的东西,我想ask here 有人能解释一下a*=ba=a*b 之间的区别吗(有关更多详细信息,请参阅链接)我以为他们是相同,但似乎并非如此。
  • @MikeH-R - 看起来你已经有了答案 - 操作顺序。
【解决方案2】:

具有 二元运算符 形式的表达式:

x = x op y

可以写成:

x op= y

例如:

x += y   # x = x + y
x /= y   # x = x / y
x ||= y  # x = x || y (but see disclaimer)

但是,请注意||=&&= 的行为可能略有不同……不同(与哈希索引器结合使用时最明显)。很多关于这个奇怪的问题。

编码愉快。

【讨论】:

    【解决方案3】:

    不是 ruby​​ 专家,但我认为它要么附加到现有字符串,要么增加一个数字变量?

    【讨论】:

      【解决方案4】:

      你应该找一本关于 Ruby 的好书,例如http://pragprog.com/book/ruby3/programming-ruby-1-9

      前 150 页涵盖了关于 Ruby 的大部分基本内容。

      str = "I want to learn Ruby"
      
      i = 0
      str.split.each do |word|
        i += 1
      end
      
      puts "#{i} words in the sentence \"#{str}\""
      
        => 5 words in the sentence "I want to learn Ruby"
      

      【讨论】:

        猜你喜欢
        • 2010-09-29
        • 2011-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-07
        • 2014-05-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多