Ruby on rails 如何从用户输入编辑hashmap值?
如果我运行下面的代码,我会得到一组X、Y键和一个方向键,所有这些键都根据用户的输入分配了一个值。完成此操作后,如何提示能够更改hashmap值的用户?假设用户输入x=>1;y=>2;D=>N-我希望将x键更改为5,但其他键必须保持不变 代码:Ruby on rails 如何从用户输入编辑hashmap值?,ruby-on-rails,ruby,Ruby On Rails,Ruby,如果我运行下面的代码,我会得到一组X、Y键和一个方向键,所有这些键都根据用户的输入分配了一个值。完成此操作后,如何提示能够更改hashmap值的用户?假设用户输入x=>1;y=>2;D=>N-我希望将x键更改为5,但其他键必须保持不变 代码: 常规Ruby变量没有前缀,前缀具有重要意义:@x、$x和x代表三种完全不同的东西 只要这样做: position[key] = gets.chomp 或者重新编写代码: PROMPTS = { x: "x position", y: "y pos
常规Ruby变量没有前缀,前缀具有重要意义:
@x
、$x
和x
代表三种完全不同的东西
只要这样做:
position[key] = gets.chomp
或者重新编写代码:
PROMPTS = {
x: "x position",
y: "y position",
D: "Direction (N,E,S,W)"
}
def rover_position(position)
puts "Please input the rovers #{message}"
PROMPTS.map do |key, message|
[ key, gets.chomp ]
end.to_h
end
这将创建一个常量,因为您的提示不会从一次运行更改到下一次运行,并且避免了
with_object
的麻烦。如果用户为x输入1,它将如何变为5?我不确定您的代码有什么问题,但首先要删除$
位置中的$
。。与bash不同,ruby在使用变量时不预先添加$
。当你说$position
时,它实际上指的是一个从未设置过的全局变量。如果不是因为对未定义全局变量的引用等于nil
,你会得到一个NoMethodError。我看到你使用的是我在前面的问题中提供的代码。但是,你从来没有接受过这个答案。
PROMPTS = {
x: "x position",
y: "y position",
D: "Direction (N,E,S,W)"
}
def rover_position(position)
puts "Please input the rovers #{message}"
PROMPTS.map do |key, message|
[ key, gets.chomp ]
end.to_h
end