我正在做一个编码难题,你是一个阵列中的矿工,你不能超出界限.我有这个代码:
if x > minemap.length-1 or x < 0 or y > minemap[0].length-1 or y < 0
return false
end
Run Code Online (Sandbox Code Playgroud)
链接大量OR语句是否有更好/更清洁/单行的方式?
首先,使用or和and过度||以及&&在条件不红宝石成语,因为它们具有不同的优先级,并可能不会总是做你想做的(风格指南参考).至于实际的问题,像这样的东西是更惯用的Ruby:
(0...minemap.length).cover?(x) && (0...minemap[0].length).cover?(y)
Run Code Online (Sandbox Code Playgroud)
这使用Range#cover?检查x并且y在正确的范围内并返回,false除非这是真的.