我有这个file.rb,当我从终端运行它时,我想删除某个输入值。但是,阵列保持不变。有什么帮助吗?
def delete
print "Introduce the parameter for the delete action"
delete_value = gets.chomp
p @array.select { |e| e!= "#{delete_value}"}
#@second_array = @array.reject! {|x| x == "#{delete_value}" }
#puts @second_array
end
答案 0 :(得分:0)
此方法返回包含所有匹配项的新数组。你的原始数组确实根本没有变化。
供进一步参考:http://ruby-doc.org/core-2.0.0/Enumerable.html#method-i-select
答案 1 :(得分:0)
你有一系列数字:
@array = [-3,6,5,3,10,6,2,3,9,-3,-2,-5]
但是你的delete_value
是一个字符串:
delete_value = gets.chomp
每个Fixnum a == b
和字符串a
b
为false(类似a != b
总是如此),因此您需要将b
转换为一个如下的数字:
delete_value = gets.to_i
@array.reject! { |x| x == delete_value }
Ruby不会像某些语言那样自动在字符串和数字之间进行转换,您必须使类型匹配并手动执行类型转换。