好時,這可能是真的瘋了,和/或愚蠢的,但..調用函數遍歷散列
我寫的IRCBot也Ruby中學習語言,我想包括命令的調度在機器人。
所以我們可以說,我有一個哈希值,用來定義命令屬於什麼功能:我做
hash = { ".voice" => "basic", ".op" => "basic" }
然後將此:
hash.each_pair do |k,v|
case content[0]
when k then v(content[1])
end
end
其中內容[0]是」。聲音「,而內容[1]是有聲的。
這會生成一個錯誤,告訴我v是main:Object的未定義方法。
是我想要做什麼感覺還是有更好的方法來做到這一點?如果這樣做這樣做是有道理的。爲什麼它返回這個錯誤?
我不認爲我明白你正在嘗試做的。你得到的錯誤是因爲'v'是一個字符串。你是否正在設置'v = content [1]'? –