向我展示一个权威的、经过同行评审/维护的Ruby优先表(operators、non-operators和modifiers).
多年来,我不得不依靠以下来源获得这些信息:
1. http://phrogz.net/programmingruby/language.html#table_18.4——Pickaxe本书记录了Ruby 1.6
,该书于2000年9月发布,其中包含一个格式错误或打字错误({
被列为assignment运算符).
2. http://www.techotopia.com/index.php/Ruby_Operator_Precedence-上述Pickaxe表的近似副本,包括错误的{
,意外地将||
描述为Logical 'AND'.
3. http://www.tutorialspoint.com/ruby/ruby_operators.htm——也是Pickaxe表的一个近似副本,虽然它将||
的描述修改为Logical 'OR',但它仍然将{
列为assignment运算符.此外,它还列出了::
,并错误地将其描述为constant resolution operator(::
是not个操作员).
4. http://my.safaribooksonline.com/book/web-development/ruby/9780596516178/expressions-and-operators/operators-The Ruby Programming Language本书,其中记录了Ruby 1.8
和1.9
,分别于2003年8月和2007年12月发布.这本书由大卫·弗拉纳根和松本幸弘(又名"玛兹",Ruby的发明者)于2008年出版.它似乎是最新、最准确的操作员、非操作员、修改器和支持信息列表.顺便说一句,在2005年前后,人们对Ruby的兴趣与Rails同步飙升,Rails于2004年7月发布.
5. http://romhack.wikia.com/wiki/Ruby_operators-还记录Ruby 1.9
中的运算符,并在其表中包含非运算符和修饰符.
Ruby 2.0
was released in February 2013, and was intended to be fully backward compatible with Ruby 1.9.3
.在为数不多的已知不兼容性中,没有一个与操作员有关.
Ruby 2.1.0
was released on Christmas Day in 2013
,同样,没有列出任何运算符不兼容.
因此,我决定根据Flanagan/Matz的书写一个答案,并将其定为community wiki.