破壊的メソッドがnilを返す場合

参考

gogutan.hatenablog.com


p f = [1,3,2, "2", "3" ]
p g = f.uniq {|n|n.to_s}
p f.object_id
p g.object_id

# [1, 3, 2, "2", "3"]
# [1, 3, 2]
# 70291846447480
# 70291846447180

p  d = [1,3,2, "2", "3" ]
p  e = d.uniq! {|n|n.to_s}
p  d.object_id
p  e.object_id
p  d

# [1, 3, 2, "2", "3"]
# [1, 3, 2]
# 70291846471400
# 70291846471400
# [1, 3, 2,]
# dの配列を破壊的に変更

p a = [1,3,2, "2", "3" ]
p b = a.uniq
p a.object_id
p b.object_id

# [1, 3, 2, "2", "3"]
# [1, 3, 2, "2", "3"]
# 70291846470860
# 70291846470660

p b = [1,1,3,2, "2", "3" ]
p c = b.uniq!
p b.object_id
p c.object_id
p b

# [1, 1, 3, 2, "2", "3"]
# [1, 3, 2, "2", "3"]
# 70327296121140
# 70327296121140
# [1, 3, 2, "2", "3"]

p a = [1,3,2, "2", "3" ]
p b = a.uniq!
p a.object_id
p b.object_id

# [1, 3, 2, "2", "3"]
# nil 重複する要素がない戻り値
# 70291846470320
# 8
# [1, 3, 2, "2", "3"]