0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Rubyにおける「~」記号の使い方(再投稿)

Last updated at Posted at 2024-01-16

Rubyで「~」記号は、主に否定演算子として、また正規表現のマッチング、特殊なメソッド名の一部として使用されます。

1. 否定演算子(Bitwise NOT)

否定演算子としての「~」は、ビット単位の否定を行うために使われます。これは、整数の各ビットを反転させる操作です。

例:

a = 0b0101  # 5の二進数表現
~a          # => -6

この例では、0b0101の各ビットが反転され、0b1010の補数が計算されます。Rubyでは整数は補数形式で保持されるため、結果は-6になります。

2. 正規表現マッチ演算子

「~」は正規表現と文字列のマッチングにも使用されます。この場合、正規表現オブジェクトに対して使用され、マッチした場合はその位置を、マッチしない場合はnilを返します。

例:

"hello" =~ /e/   # => 1
/e/ =~ "hello" # => 1

注釈:
最初の例では、「hello」の中で「e」が最初に現れる位置(1)を返しています。
二番目の例では、同じ操作を~を使って行っています。

3. 単項演算子としての使用

Rubyでは、~をオーバーロードして、クラスによっては特殊な意味を持たせることができます。

例:

class MyNumber
  def initialize(num)
    @num = num
  end

  def ~
    -@num
  end
end

n = MyNumber.new(5)
~n  # => -5

注釈:
この例では、MyNumberクラスで~演算子をオーバーロードし、オブジェクトの数値の符号を反転させる
機能を定義しています。nがMyNumberのインスタンスである場合、~nはnの数値の符号を反転させた値(この場合は-5)を返します。

まとめ

この記事は一度作ったものの修正です、コメントをいただいていたのですが、初めてのコメントに動揺して間違えて削除してしまったため、修正し再投稿します。
以前コメントをいただいた方ありがとうございました。

0
0
2

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?