我一直在筛选之前关于 stackoverflow 的问题和答案,并且我已经弄清楚了我的大部分问题。我发现如果不将函数调用放在 proc 或类似容器中,我就无法在哈希中放置函数调用。
我最终要做的是显示一个菜单,获取用户输入,然后遍历哈希,并运行指定的函数:
def Main()
menu_titles = {"Answer1" => Proc.new{Choice1()}}
Menu(menu_titles)
end
def Choice1()
puts "Response answer"
end
def Menu(menu_titles)
menu_titles.each_with_index do |(key, value),index|
puts "#{index+1}. #{key}"
end
user_input = 0
menu_titles.each_with_index do |(key, value), index|
if index.eql?(user_input)
menu_titles[value]
break
end
end
end
Main()
我现在遇到的问题是我没有输入我的哈希要求的函数。无论我使用 return 还是“puts”,我要么得到一个空行,要么什么都没有。如果有人对我的代码有其他建议,我也会全神贯注。老实说,我不喜欢使用 procs,但这主要是因为我不完全知道它们是如何工作的以及在哪里使用它们。
现在我的菜单有:
user_input = 1
if user_input == 1
Choice1()
...
end