(ruby) 2つの変数の内容を入れ替える


使う機会があるかどうかは別として挙動の理解として、
2つの変数の値を入れ替える いわゆるswapをrubyで書くにはどうすればいいか?、
考え方的には 参照先を入れ替えればいいわけなので a,b = [b,a] という風に書けます。
確認のために以下を実行すると、2つの変数の object_idも ポインタも 入れ替わっているのがわかります。

require "fiddle"
a = "hello"
b = "world"
puts(a.object_id)
puts(b.object_id)
puts(Fiddle::Pointer[a].to_i)
puts(Fiddle::Pointer[b].to_i)
a,b = [b,a]
puts(a.object_id)
puts(b.object_id)
puts(Fiddle::Pointer[a].to_i)
puts(Fiddle::Pointer[b].to_i)