leaning diary Rails

【Learning Diary31】キャスティング/RBS/アノテーション

09/11/2023

【Learning Diary31】キャスティング/RBS/アノテーション

キャスティング

プログラミング用語で、変数の方を別の方に変換する型変換をコードで明示的に行うことをキャストと言います。

 

例えば、rubyの場合。

 

Student.new(form_method: :post)

で、インスタンスを作成しても、Studentモデルに

attribute :form_method, :string

が定義されていると、インスタンスのform_methodはinitializeの際に、:postから"post"に自動で変換されて保存されます。

(※Active Recordを継承している場合)

 

以下でキャストされていることを確認できます。

 

student = Student.new(form_method: :post)

student.form_method
> "post"

student..form_method.is_a?(String)
>true

 

アノテーションとRBS

アノテーション(annotation)とは、「注釈」を意味する英単語です。

 

あらゆる形態のデータの一つずつに、タグやメタデータ(対象データに付随する関連データ)などの情報を付与していく工程をアノテーションというそうです。

 

特に、型アノテーションといえば、変数・関数の引数、戻り値に「型」のコメントをつけることをいいます。

 

Rubyコミュニティでは、DSLやツールを用いて型アノテーションの実証実験を行っており、そのなかでRBSが生まれました。

 

RBSはRubyを意識したアノテーション用語のようですが、現状Rubyに取り込まれることはなく一つのRubyツールという立ち位置のようです。

 

以下の記事ではRBSについて、背景や実装の経緯を踏まえてわかりやすく解説されており、大変参考になりました。

ありがとうございました。

 

Rubyの型アノテーションの現状についていくつか思うこと(翻訳)

-leaning diary, Rails