RBS
型付けの種類
静的型付け
- プログラム実行前に型検査を行う
- 卵焼きを作る際の卵の選定時に、生卵でなければならない、という定義をするのが静的型付け言語
- 卵を割る(ここの卵は絶対に生卵)
- 卵を混ぜる
- 卵を焼く
- 卵焼きを作る際の卵の選定時に、生卵でなければならない、という定義をするのが静的型付け言語
動的型付け
- プログラム実行中に型検査を行う
- 卵焼きを作る際の卵の選定時に、生卵かゆで卵かなど卵の状態を定義をせずにプログラミング言語に判断を任せるのが動的型付け言語
- 卵を割る
- 卵を混ぜる
- 卵を焼く
- 卵焼きを作る際の卵の選定時に、生卵かゆで卵かなど卵の状態を定義をせずにプログラミング言語に判断を任せるのが動的型付け言語
静的型検査の善し悪し
- 問題を誤検出することは許容しても、問題を見逃すことは極力避けるように設計されている
if Math::PI == 3.0
"Hello" + 123 # このブランチは実行されないが静的型検査がエラーを報告してしまう
end
- 動的な型検査は、実行中に実際に問題が発生したときだけ考えれば良いので、プログラミングしている最中に型検査器によって理不尽に文句をつけられることはない