LoginSignup
9
8

More than 5 years have passed since last update.

Ruby の Array に XOR のメソッドがなかったので

Posted at

次のような Array の変数 ab があるとして、

> a = [1, 2]
=> [1, 2]

> b = [1, 3]
=> [1, 3]

積集合と和集合は、演算できるので、

> a & b # 積集合
=> [1]

> a | b # 和集合
=> [1, 2, 3]

> a - b # 差集合
=> [2]

排他的論理和を出そうとして、 TrueClassFalseClass のように ^ があるのかとうっかりやってみたら、

> a ^ b
NoMethodError: undefined method `^' for [1, 2]:Array

となってしまったので、単純に次のようにしてみても良かったが、

> (a - b) + (b -a)
=> [2, 3]

Set には ^ があるので、次のようにしてみた。

irb(main):009:0> (Set.new(a) ^ Set.new(b)).to_a
=> [3, 2]

Set 使っているので、順序は不定になるが、自分の用途には間に合った。

9
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
8