我正在尝试复制ARGV数组以删除每个元素的冻结状态,但我所做的一切似乎都无效。
我可以在这个主题上找到的所有其他帖子都表明使用.dup应该可行,但事实并非如此。以下是我如何使用它:
args = ARGV.dup
puts args[0].frozen?
=> true
i = 0
argv.each {|x|
args[i] = x.dup
i += 1 }
puts args[0].frozen?
=> true
我也尝试在这些场景中使用assign运算符和clone方法。
答案 0 :(得分:0)
我尝试了以下内容:
args = ARGV.dup
p args[0].frozen? #=> true
args.each_with_index {|arg,i| args[i] = arg.dup }
p args[0].frozen? #=> false
基本上这应该足够了:
args = ARGV.map(&:dup)
p args[0].frozen? #=> false