“+=”(加号)是啥意思?
Posted
技术标签:
【中文标题】“+=”(加号)是啥意思?【英文标题】:What does "+=" (plus equals) mean?“+=”(加号)是什么意思? 【发布时间】:2011-11-30 02:39:28 【问题描述】:我正在做一些 ruby 练习,它说我需要返回并使用 +=
速记符号重写脚本。
本练习主要涉及学习新方法。问题是,当我尝试在线查找时,我不知道+=
是什么意思。
【问题讨论】:
What does "+=" (plus equals) mean in Ruby?的可能重复 【参考方案1】:+=
是一个速记运算符。
someVar += otherVar
和
一样someVar = someVar + otherVar
【讨论】:
非常感谢您的帮助,感谢您的快速答复。 而someVar = someVar + otherVar
与someVar = someVar.+(otherVar)
相同。随意编写自己的类并在其上实现+
,您也可以拥有+=
的魔力!
请注意,您(可能)需要在您的 +
函数中返回 self
以使 +=
按预期工作。
我有一些更高级的东西,我想ask here 有人能解释一下a*=b
和a=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"
【讨论】:
以上是关于“+=”(加号)是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章