红宝石:对方法未定义的方法错误调用后定义
问题描述:
我不知道这里发生了什么......但说我这样做:红宝石:对方法未定义的方法错误调用后定义
def who_wins?(choice1, choice2)
if (choice1 == 'R' && choice2 == 'S') || (choice1 == 'S' && choice2 == 'P') || (choice1 == 'P' && choice2 == 'R')
return choice1
elsif choice1 == choice2
return "tie"
else
raise NoSuchStrategyError
end
end
won_wins?('R', 'P')
它给了我下面的错误:
NoMethodError: undefined method `won_wins?' for main:Object
at top level in my-file.rb at line 25
为什么会这样做,即使我在定义之后调用方法?
答
您键入won_wins?
而不是who_wins?
+0
非常感谢。哑,愚蠢的错误。 – marcamillion 2012-03-12 22:34:12
+0
不是那么愚蠢,真的 – JDS 2013-03-14 19:32:05
因为你命名你的方法'who_wins?'和你试图调用'won_wins?'? – chrisn 2012-03-11 22:51:04
除了这是一个打字错误的事实之外,您正试图提高一个班级,而不是班级的错误。你想要的是'提高NoSuchStratagyError.new' – Linuxios 2012-03-11 23:02:13
谢谢你指出......我的错误#fail。 @ Linux_iOS.rb.cpp.c.lisp.m.sh谢谢你指出,你是对的。我确实需要一个类的实例,而不是实际的类。但是,出于好奇,为什么它会工作,如果我'提出NoSuchStrategyError'? – marcamillion 2012-03-12 22:39:05