🕌
assert について
定義
func assert(
_ condition: @autoclosure () -> Bool,
_ message: @autoclosure () -> String = String(),
file: StaticString = #file,
line: UInt = #line
)
使用例
assert(condition, "Message")
condition はテストする条件(真または偽)を、"Message" は条件が偽の場合に表示するメッセージを表す。
デバッグ時に、条件を満たさないときプログラムをクラッシュさせ、メッセージをコンソールに表示する。
類似の関数との違い
assert
デバッグビルド時にのみチェックされる。
リリースビルドでは無視される。
開発中にチェックするのに適している。
precondition
デバッグビルドとリリースビルドでチェックされる。
重大なエラーをチェックするのに適している。
fatalError
常にチェックされる。
致命的なエラーでプログラムを続行不可の場合に使う。
メリット・デメリット
メリット
assert はデバッグ中に起こる問題の早期発見に役立つ。想定外の状態や条件が発生した時に、問題の原因追及を容易にする。
デメリット
assert はデバッグビルドでのみ動作するため、リリースビルドで発生する問題を見逃す。
重大なエラーに対しては、 precondition , fatalError などリリースビルドでも確実にチェックする関数が適している。
Discussion