0

开始我的河内塔任务,我有

a = [6,5,4,3,2,1]
b = []    
c = []

puts "Type a, b, or c"
from = gets.chomp
# the user types a lower-case a
popped = from.pop

现在这显然失败了,因为 pop 不是字符串方法。

所以除了

if from == a
    popped = a.pop
elsif from == b
    popped = b.pop

,是否有一个不错的红宝石快捷方式来获得我想要的流行音乐?

4

2 回答 2

0
options = {
  :a => [6,5,4,3,2,1]
  :b => []    
  :c => []
}

puts "Type a, b, or c"
from = gets.chomp
popped = options[from.to_sym].pop

我必须强烈建议您避免使用eval上面使用的方法,因为它允许用户输入任意代码。改为使用哈希来存储您的所有选项。

于 2013-10-07T00:33:33.850 回答
0

您可以使用eval

a = [6,5,4,3,2,1]
b = []    
c = []

puts "Type a, b, or c"
from = gets.chomp
popped = eval(from).pop

eval出于安全、性能和调试原因,通常被视为一个坏主意。

于 2013-10-06T23:33:20.210 回答