🕌
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
などリリースビルドでも確実にチェックする関数が適している。
参考サイト
- https://developer.apple.com/documentation/swift/assert(::file:line:)
Discussion