有簡單的定義嗎?
可以這么說,“斷言代碼”的本質是什么?
到目前為止,我發現的所有定義都非常模糊。
是否有一些我可以在不使用大量行話的情況下閱讀的簡潔明了的內容?
我認為行話在我的情況下可能是一個問題。我很笨,但我想學習它,所以歡迎任何幫助和指點。
uj5u.com熱心網友回復:
一種assert說法本質上是一個if將列印錯誤(有時,停止程式),如果條件是虛假陳述。如果條件為真,則什么都不做。
斷言通常用于軟體測驗。您可以使用它們來檢查程式的行為是否符合您的預期。換句話說,當程式違反了程式員想要檢查的假設時,它們會發出警報。
但是,也沒有什么可以阻止您在生產代碼中留下斷言。這有時可能是有益的,尤其是在您無法通過測驗輕松模擬程式的情況下 - 例如,因為您沒有真實的資料來測驗它。
在這種情況下,您通常希望失敗的斷言只是將訊息列印到日志檔案。程式運行一段時間后,檢查日志檔案,如果一切正常,則不應有關于失敗斷言的訊息。
uj5u.com熱心網友回復:
當您撰寫“命令式代碼”時,您會告訴計算機該做什么。
當您撰寫“宣告性代碼”時,您會告訴計算機要生成什么。
當你撰寫“斷言代碼”時,你告訴計算機你期望什么是真的。
“斷言代碼”一詞并不像其他兩個那樣常見,并且在實踐中以不同的方式使用。在常見的面向物件語言中,它通常只是指使用assert運算式來捕獲錯誤。在函式式編程(您提供的示例)中,它通常是指模式匹配和解構構造,暗示其輸入具有特定形狀。在像 Prolog 這樣的語言中,它可以指程式必須解決的目標的定義。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/362054.html
標籤:算法
上一篇:到最接近的零值的步數
