您好,登錄后才能下訂單哦!
本文來自于瘋子們的開源圖書
邏輯操作符用于修改或者組合布爾邏輯值true和false。Swift支持C語言當中的三個標準邏輯操作符:
邏輯非(!a)
邏輯與(a&&b)
邏輯或(a||b)
邏輯非操作符翻轉一個布爾值,即將true變成false,false變成true.
邏輯非是一個前序操作符,后面緊跟著要操作的值,中間沒有空白。可以讀作"非a",就像下面的例子一樣:
表達式if !allowedEntry可以讀作“if not allowed entry”.只有當"not allowed entry'是true的時候,接下來的代碼才會執行。即 allowedEntry 是false.
就像上面的例子一樣,仔細的選擇一下邏輯變量和常量的名字有助于代碼的簡潔和可讀性,從而可以避免雙重否定或者令人混淆的邏輯語句。
由邏輯與操作符(a&&b)構成的邏輯表達式只有當兩個值都是true的時候,整個表達式才是true
只要其中的一個為false的話,整個表達式就是false.事實上,如果第一個值為false,第二個值也不會計算的,因為整個表達式的值已經不可能為true了。這就是所謂的短路法則。
下面的例子會考慮兩個Bool值的,只有當兩個都為true的時候,才可以進門去:
邏輯或(a||b)操作符是由兩個豎杠構成的中序操作符。由邏輯或操作符構成的邏輯表達式只要有一個的值為true,整個表達式的值就為true.
就像上面的邏輯與操作符,邏輯或操作符也使用短路法則計算表達式的值。如果邏輯或操作符左側的值為true,
那么右側的值也不會計算了,因為已經不可能影響到整個表達式的結果了。
在下面的例子中,第一個布爾值(hasDoorKey)為false,但是第二個值(knowsOverridePassword)為true,由于有一個值為true,整個表達式的值也為true,可以進門了:
你可以組合使用多個邏輯操作符來構成一個更長的復合表達式:
這個例子中使用了多個&&和||操作符構成了一個更長的復合表達式。不過&&,||仍然是二元操作符,因此實際上這個表達式就是由三個更小的表達式構成的而已。可以讀作:
如果我們輸入了正確的進入碼,并且通過了視網膜掃描;或者我們有能開門的鑰匙;或者我們知道緊急通行密碼,那么我們都可以進門。
根據的值,雖然前兩個子表達式的值都為為false.不過緊急通行密碼是已知的,整個表達式的值就是true.
雖然有些地方沒有強制使用括號,但是有時候使用一下括號還是很有用的,它可以使得一個復雜表達式的含義更容易閱讀。還是上面進門的例子,在復合表達式的第一部分上添加括號可以使得他的含義更加的清晰:
在前兩個值上添加括號可以使得他們作為一個整體的來看待。整個表達式的值沒有變,但是真個表達式的含義更易于閱讀了。可讀性永遠比簡潔性更重要。盡量適當的使用一下括號,表達式的含義會更加的清晰。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。