uniq不会改变数组本身,而uniq!会直接修改数组,且uniq如果找到重复元素,则返回去重的数组,否则返回nil(这里比较容易理解错误而踩坑)
a = [5,2,2,5,3]
a.uniq # [5, 2, 3]
p a # [5, 2, 2, 5, 3]
a.uniq! # [5, 2, 3]
p a # [5, 2, 3]
a.uniq! # nil
p a # [5, 2, 3]
参考:
https://stackoverflow.com/questions/33923492/ruby-what-is-the-difference-between-uniq-and-uniq