相关疑难解决方法(0)

Ruby运算符优先级表

向我展示一个权威的,经过同行评审/维护的Ruby优先级表(运算符,非运算符修饰符).

多年来,我不得不依赖以下来源获取此信息:

1. http://phrogz.net/programmingruby/language.html#table_18.4 - 文档Ruby 的Pickaxe书,1.6于2000年9月发布,包含格式错误或拼写错误({列为赋值运算符) .

2. http://www.techotopia.com/index.php/Ruby_Operator_Precedence - 上述Pickaxe表的近似副本,包括错误的{,并且意外地描述||逻辑"AND".

3. http://www.tutorialspoint.com/ruby/ruby_operators.htm - 也是Pickaxe表的近似副本,虽然它修复了||Logical'OR'的描述,但它仍然{列为赋值运算符.同样,它列出::并错误地描述为一个恒定的分辨率操作者(::不是操作者).

4. http://my.safaribooksonline.com/book/web-development/ruby/9780596516178/expressions-and-operators/operators - Ruby编程语言的书,其中记录的Ruby 1.81.9,这是在2003年发布2007年8月和十二月, 分别.本书由David Flanagan和Yukihiro Matsumoto(又名"Matz",Ruby的发明者)于2008年出版.它似乎是最新,最准确的运营商,非运营商,修改器和支持信息列表.顺便说一句,在2005年左右,对Ruby的兴趣与2004年7月发布的Rails同步增长.

5. http://romhack.wikia.com/wiki/Ruby_operators - 还记录Ruby中1.9的运算符,并在其表中包含非运算符和修饰符.

Ruby 2.0于2013年2月发布,旨在与Ruby完全向后兼容1.9.3.在少数已知的不兼容性中,没有一个与运营商有关.

Ruby …

ruby

45
推荐指数
1
解决办法
1万
查看次数

为什么`put(nil或4)`在Ruby中失败?

当我做:

puts(nil or 4)
Run Code Online (Sandbox Code Playgroud)

Ruby抱怨:

SyntaxError: syntax error, unexpected keyword_or, expecting ')'
Run Code Online (Sandbox Code Playgroud)

这是为什么?puts(nil || 4)确实有效,但我想知道为什么or不这样做.我认为两者之间的区别只在于它们的运算符优先级.

(我知道这个表达nil or 4似乎没有用,因为它总是会返回4.这只是一个例子,为了简单起见.我的实际表达是Integer(ENV['WD'] or 4).)

ruby

18
推荐指数
3
解决办法
733
查看次数

ruby的方法调用的优先级是什么

http://phrogz.net/programmingruby/language.html#table_18.4 上面链接提供的表格只给出了 ruby​​ 运算符的优先级。方法的优先级是什么(或者我应该说:消息/函数)?

例如,当我在 irb 中输入如下内容时

Math.sqrt 2 + 2
Run Code Online (Sandbox Code Playgroud)

结果我得到了 2.0。没有优先级的明确规则,我无法决定在哪里使用括号以及在哪里省略它们。所以,请有人帮助我摆脱这种不确定性。提前致谢!

ruby operator-precedence

5
推荐指数
1
解决办法
1501
查看次数

多条件评估

我有一个快速的问题 :

在红宝石中,如果我写

def test
  foo && a  == b && c == "bar"
end
Run Code Online (Sandbox Code Playgroud)

如果 foo 为 null 或 false,它会继续评估表达式的其余部分吗?

如果我这样做,它会改变什么吗

def test
  a == b && c == "bar" if foo
end
Run Code Online (Sandbox Code Playgroud)

多谢

ruby

2
推荐指数
1
解决办法
1588
查看次数

标签 统计

ruby ×4

operator-precedence ×1