得到了
...'[] =':无法修改冻结的字符串(TypeError)
当试图修改我认为是ARGV [0]的副本时。
每个
的结果相同arg = ARGV[ 0 ]
arg_cloned = ARGV[ 0 ].clone
arg_to_s = ARGV[ 0 ].to_s
arg[ 'x' ] = 'y'
arg_cloned[ 'x' ] = 'y'
arg_to_s[ 'x' ] = 'y'
答案 0 :(得分:101)
因为谷歌花了太长时间才找到正确的答案......
需要做
arg_dup = ARGV[ 0 ].dup
答案 1 :(得分:5)
由于Ruby 2.3推荐的方法是use the unary plus operator,因此如果冻结了字符串,它将返回重复的可变字符串。
+arg