Enumerable
的any?
,all?
和none?
你的朋友们对这种事情
VALID_COMMANDS = [ 'course analytics', 'view student averages', 'report cards', 'done' ] if VALID_COMMANDS.any? {|s| command.downcase != s }
在没有看到你的身体的情况下if
,我怀疑你对你的组合操作符的感觉是错误的(如果写的,你的条件总是正确的,因为被测试的字符串必须与它测试的值之一不同)如上所述,你'如果命令不等于任何字符串,我会怀疑你要么测试它是否等于其中一个或者没有.
if VALID_COMMANDS.none? {|s| command.downcase == s }
当块中的测试相等时,include?(foo)
相当于any? {|x| x == foo }
,所以这是none?
使用include 的等效测试:
unless VALID_COMMANDS.include? command.downcase