Listen

Description

第124章へようこそ。

第123章で、安全の境界を語りました。

Rustはunsafeというキーワードと型システムで、安全な領域と安全でない領域を分離する。

安全な領域では、コンパイラがメモリ安全とデータ競合の不在を保証する。

今日のテーマは「実行時の検査」です。コンパイラが手放したものを見ていきます。

Rustはコンパイル時に多くのことを保証する言語です。

所有権。借用。ライフタイム。型の整合性。スレッド安全性。

しかし、すべてをコンパイル時に保証しているわけではありません。

配列の範囲外アクセスは、実行時に検査される。

整数のゼロ除算は、実行時に検出される。

RefCellの借用規則違反は、実行時に発覚する。

Rustがあえてコンパイル時に保証しなかったものがある。

実行時の検査に委ねたものがある。

なぜ、すべてをコンパイル時に解決しなかったのか。

その判断には、明確な理由があります。