【发布时间】:2011-01-01 01:29:42
【问题描述】:
为什么加法“运算符”是一种方法,而赋值运算符 += 不是?
为什么运算符会这样工作:
红宝石头 > 2.+(4)
=> 6
虽然赋值运算符以这种方式工作:
红宝石头> i = 1
=> 1
红宝石头>我 += 1
=> 2
红宝石头 > i.+=(1) SyntaxError: (irb):26: 语法错误, 意外'=' i.+=(1) ^ 来自 /Users/fogonthedowns/.rvm/rubies/ruby-head/bin/irb:17:in `'
【问题讨论】:
-
有趣。 += 将如何对“+”运算符的重新实现做出反应?也许 '+=' 只是将变量分配给 variable.+(some value) 的结果的语法糖。
-
你的问题是,“为什么这个东西是这样设计的?”除了“因为语言设计者决定是这样的”之外,您是否期望得到任何答案?您是否希望 Matz 本人来解释他的设计原理?
-
@Phrogz:其实还有比这更好的答案,sepp2k 给出了。
-
也许我对问题形式过于直白了。也许人们普遍理解“为什么this是这样的?”的问题。实际上是“如果我们将 this 更改为其他内容,请解释后果。”
标签: ruby