为什么这不起作用?
case ARGV.length
when 0
abort "Error 1"
when > 2
abort "Error 2"
end
Run Code Online (Sandbox Code Playgroud)
Phi*_*lds 43
它不是有效的ruby语法.
你需要的是什么
case
when ARGV.length == 0
abort "Error 1"
when ARGV.length > 2
abort "Error 2"
end
Run Code Online (Sandbox Code Playgroud)
在编写时case x,您需要理解的重要部分是ruby接受x然后将比较应用于您在when子句中插入的参数.
你说的when x >2那条读到ruby 的行:
if ARGV.length == > 2
Run Code Online (Sandbox Code Playgroud)
从case语句中删除特定对象时,可以在语句中应用条件when.
And*_*imm 22
使用1.0 / 0.0得到无穷大,修复@ mosch的代码:
case ARGV.length
when 0
raise "Too few"
when 3..(1.0/0.0)
raise "Too many"
end
Run Code Online (Sandbox Code Playgroud)
你不必被查克诺里斯除以浮点零.
mor*_*itz 17
好吧,它不起作用,因为它不是有效的ruby语法.但是,您可以这样做:
x = 15
case x
when 0..9 then puts "good"
when 10..12 then puts "better"
when 13..200 then puts "best"
else
puts "either great or poor"
end
Run Code Online (Sandbox Code Playgroud)
一种if说法很可能是你的代码更恰当的,因为你没有一个明确的范围/值,而只是一个大于:
if ARGV.length == 0
abort "Error 1"
elsif ARGV.length > 2
abort "Error 2"
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16978 次 |
| 最近记录: |