第九節swift 斷言(Assertions)

2021-06-22 12:14:56 字數 1085 閱讀 3536

可選使得你能夠檢查值存在或者不存在,這使得你能夠很優雅的處理值缺失的情況。在某些情況下, 如果某個變數的值不存在的話,亦或者提供的值不能滿足某個條件的時候,你就不能簡簡單單的讓你的**繼續執行了。在這些情況下,你可以在**中觸發乙個斷言,這樣你就有機會除錯一下**,看看什麼原因導致值是缺失的或者是無效的。

斷言其實就是乙個執行時的檢查機制,判斷一下邏輯條件是不是為true.字面上的意思就是,乙個斷言斷定條件是true.通過宣告乙個斷言來確保某個必要的條件是滿足的,以便繼續執行接下來的**。如果條件滿足了,那麼**像往常一樣執行,如果不滿足了,**就停止執行了,應用也隨之停下來了。

在某些除錯環境下,比方說在xcode當中構建,執行乙個應用的時候,如果你的**觸發了斷言的話,你就可以準確的知道應用在**出了問題,看看觸發斷言時,應用當時的狀態是怎樣。在斷言當中也可以提供乙個適當的除錯資訊,就像斷言這個詞本身的含義一樣。

可以使用全域性函式assert來宣告乙個斷言。向assert函式傳遞乙個條件表示式,如果表示式為false,可以列印一段資訊。

在這個例子當中,當且僅當age >= 0true的時候,也就是age為非負的情況下,**才會繼續執行。如果age為負的情況,就像上面一樣,那麼age >= 0就是false,斷言就會被觸發,應用終止。

斷言資訊中再不能包括字串操作了。斷言資訊也可以省略,就像下面這樣:

在條件有可能為false的情況,當然也必須能夠為true以便於**可以繼續執行的時候,使用斷言。可以在下面這些適當的情況中使用斷言:

參考下標函式一章

注意:斷言可以引發程式終止,但是並不是被設計用來避免不在發生無效情況的。不過,在那些無效條件有可能觸發的情況下,斷言是一種 有效的手段,可以確保在應用發布之前,在開發過程中就可以關注這些條件。

‹ 

第九節除錯

除錯 第一種方法簡單直接粗暴有效,就是用print 把可能有問題的變數列印出來看看 斷言凡是用print 來輔助檢視的地方,都可以用斷言 assert 來替代 assert的意思是,表示式n 0應該是true,否則,根據程式執行的邏輯,後面的 肯定會出錯。如果斷言失敗,assert語句本身就會丟擲a...

java筆記第九節

第九節 一 設計模式 相當於戰術 入格 看 可用性,美觀性 的由23種。二 架構模式 相當於戰略 目前只有兩種 1.b s 瀏覽器 伺服器,邏輯 堆放到伺服器上 方便公升級,修改,伺服器任務重 b s網頁上的內容是臨時從伺服器上下下來的 2.c s 客戶 伺服器,邏輯 堆放到客戶端上 不適合管理軟體...

第九節 開閉原則

1 開閉原則,對擴充套件是開放的,對修改是關閉的。2 復用,模組復用和系統復用,其中模組部分復用或將整個專案程式設計可復用的。3 內部模組化時,之中有不同的邏輯。將 分為業務邏輯層和資料儲存層,將 模組化成兩個層級。像 對選單的處理,選單功能實現為業務邏輯 像 選單資料儲存用鍊錶,也可以以後改為雜湊...