【Ruby】RBSって、Nan - Nan ?

オーバーロードの質問時にメンターの方から教えてもらった。

Rubyの特徴の型に縛られない自由さ、と相反する様な型チェックのための仕組み。

 

正直完成されているので、記事の案内に留めようと思います。。

実際に手で動かして理解できる記事です。ありがたい。

 

qiita.com

 

 

zenn.dev

 

こういった解説も。

 

techlife.cookpad.com

 

 

RBS は、Ruby 3 の型を扱うための基盤です。おおよそ、次の 4 種類のものからなります。

  • RBS 言語:Ruby プログラムの型情報を記述するための記法(拡張子 .rbs
  • Ruby 組み込みライブラリの型情報:Ruby の組み込みクラス(ArrayStringなど)の型情報を書いた.rbsファイル群
  • RBS ライブラリ:.rbs ファイルのパースや解析などをするライブラリ
  • rbs コマンド:.rbs ファイルを扱うための便利コマンド

いろいろありますが、Ruby プログラマが直接意識するのは 1 つめの RBS 言語だけだと思います *1 。よって、単に RBS と言ったら「RBS 言語」、または「RBS 言語で書かれたソースコード」を指すと考えるのがよいと思います。

RBS 言語の例を示しておきます(core/string.rbs よりものすごく抜粋)。Ruby っぽいですが、Ruby ではない別の言語になっています。

class String
  def empty?: () -> bool
end