キャスティング
プログラミング用語で、変数の方を別の方に変換する型変換をコードで明示的に行うことをキャストと言います。
例えば、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の型アノテーションの現状についていくつか思うこと(翻訳)