str = "Blah00blah001"
str1 = ""
str1 = str.gsub(/[0-9]+$/,'')
print str.chars
puts
print str1.chars
puts
print str.chars - str1.chars
输出
["B", "l", "a", "h", "0", "0", "b", "l", "a", "h", "0", "0", "1"]
["B", "l", "a", "h", "0", "0", "b", "l", "a", "h"]
["1"]
我在上一次印刷中的期待
["0","0","1"]
我得到了什么
["1"]
为什么会这样?
答案 0 :(得分:4)
这是预期的结果 - -
函数就像设置差异一样,删除了第二个数组中出现的所有元素。
查看documentation。
答案 1 :(得分:3)
Array#-
的文档中的快速引用:
ary - other_ary→new_ary
返回一个新数组,该数组是原始数组的副本,删除也出现在
other_ary
中的所有项目。订单将从原始数组中保留。
说明后发布的示例显示了它的工作原理(与数组一样):
[ 1, 1, 2, 2, 3, 3, 4, 5 ] - [ 1, 2, 4 ] #=> [ 3, 3, 5 ]