Avatar
omochimetaru 9/16/2021 3:59 AM
最適化は、こう書き換えても同じだよね、ってときにやることで、 そんときに、とにかく速度を目指すか、コードサイズ肥大は避けるか、という戦略はユースケース次第
4:00 AM
assertは安全性は提供しないですね
4:00 AM
preconditionFailureはNeverなんですけど
4:01 AM
assertionFailureはNeverじゃないんです
4:01 AM
よってassertレベルは、デバッグのために仕込むようで、ロジックとしては存在しない扱いというか・・・
4:01 AM
ロジック上存在しない事になる分岐なので、安全性を提供できない。
4:02 AM
preconditionは、残る前提なので、安全性を提供するために使う。 配列のインデックスアクセスが範囲内であるかの検査とかのレベル。
4:02 AM
で、安全性を放棄するとき、preconditionレベルの分岐を消せる。
4:03 AM
assertレベルは開発中のバグ出し用で、preconditionレベルは出荷製品のメモリ安全性を担保する用