noo*_*omz 17 ruby python syntax
在python中我可以使用它来检查列表中的元素是否a:
>>> a = range(10)
>>> 5 in a
True
>>> 16 in a
False
Run Code Online (Sandbox Code Playgroud)
如何在Ruby中完成这项工作?
pie*_*fou 26
使用include?()方法:
(1..10).include?(5) #=>true
(1..10).include?(16) #=>false
Run Code Online (Sandbox Code Playgroud)
编辑:
(1..10)是Ruby中的Range,如果你想要一个数组(列表):
(1..10).to_a #=> [1,2,3,4,5,6,7,8,9,10]
Run Code Online (Sandbox Code Playgroud)
joh*_*nes 10
Range具有===方法,该方法检查参数是否是范围的一部分.
你这样使用它:
(1..10) === 5 #=> true
(1..10) === 15 #=> false
Run Code Online (Sandbox Code Playgroud)
或者你写的时候:
a= (1..10)
a === 5 #=> true
a === 16 #=> false
Run Code Online (Sandbox Code Playgroud)
您必须确保您测试的范围和值的值是兼容类型,否则将抛出异常.
(2.718..3.141) === 3 #=> true
(23..42) === "foo" # raises exception
Run Code Online (Sandbox Code Playgroud)
如果你想看到差异,打开irb并输入:
(1..10**9) === 5 #=> true
(1..10**9).to_a.include?(5) # wait some time until your computer is out of ram and freezess
Run Code Online (Sandbox Code Playgroud)