2011-10-03 29 views
29

我正在做一些红宝石练习,它说我需要回去用+=速记符号重写脚本。“+ =”(加上等于)是什么意思?

这个练习主要处理学习新方法。问题是,我不知道什么+=意味着当我试图在网上查找它。

+0

可能的重复[什么是“+ =”(加上等于)意味着在Ruby?](http://stackoverflow.com/questions/10022524/what-does-plus-equals-mean-in-ruby) – Li357

回答

2

不是一个红宝石专家,但我会认为它可以附加到现有的字符串或递增数字变量?

55

+=是速记操作符。

someVar += otherVar 

相同

someVar = someVar + otherVar 
+0

非常感谢您的帮助,我很欣赏迅速的答案。 –

+5

'someVar = someVar + otherVar'与'someVar = someVar。+(otherVar)'相同。随意编写自己的课程并在其上实现'+',而且你也可以拥有'+ ='魔法! –

+0

请注意,您(可能)需要在您的'+'函数中返回'self'以使'+ ='按预期工作。 – rdvdijk

1

你应该找一本好书关于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" 
14

表达与二元运算符的形式

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) 

然而,被警告||=&&=可能会表现稍微...不同(当与散列索引器结合使用时最明显)。尽管如此,很多关于这种古怪的问题仍然存在。

快乐编码。