位置:首頁 > 高級語言 > Swift教學 > Swift運算符

Swift運算符

運算符

Swift 標準庫定義了許多可供使用的運算符,其中大部分在 基礎運算符 和 高級運算符 中進行了闡述。這裡將描述哪些字符能用作運算符。

運算符由一個或多個以下字符組成:/=-+!*%<>&|^~.。也就是說,標記 =,->///**/. 以及一元前綴運算符 & 屬於保留字,這些標記不能被重寫或用於自定義運算符。

運算符兩側的空白被用來區分該運算符是否為前綴運算符(prefix operator)、後綴運算符(postfix operator)或二元運算符(binary operator)。規則總結如下:

  • 如果運算符兩側都有空白或兩側都無空白,將被看作二元運算符。例如:a+b 和 a + b 中的運算符+ 被看作二元運算符。
  • 如果運算符隻有左側空白,將被看作前綴一元運算符。例如 a ++b 中的 ++ 被看作前綴一元運算符。
  • 如果運算符隻有右側空白,將被看作後綴一元運算符。例如 a++ b 中的 ++ 被看作後綴一元運算符。
  • 如果運算符左側冇有空白並緊跟 .,將被看作後綴一元運算符。例如 a++.b 中的 ++ 被看作後綴一元運算符(同理, a++ . b 中的 ++ 是後綴一元運算符而 a ++ .b 中的 ++ 不是).

鑒於這些規則,運算符前的字符 ([ 和 { ;運算符後的字符 )] 和 } 以及字符 ,; 和: 都將用於空白檢測。

以上規則需注意一點,如果運算符 ! 或 ? 左側冇有空白,則不管右側是否有空白都將被看作後綴運算符。如果將 ? 用作可選類型(optional type)修飾,左側必須無空白。如果用於條件運算符 ? :,必須兩側都有空白。

在特定構成中 ,以 < 或 > 開頭的運算符會被分離成兩個或多個標記,剩餘部分以同樣的方式會被再次分離。因此,在 Dictionary<String, Array<Int>> 中冇有必要添加空白來消除閉合字符 > 的歧義。在這個例子中, 閉合字符 > 被看作單字符標記,而不會被誤解為移位運算符 >>

要學習如何自定義新的運算符,請參考 自定義操作符 和 運算符聲。學習如何重寫現有運算符,請參考 運算符方法


運算符語法語法
運算符 → 運算符字符 運算符 可選
運算符字符 → / | = | - | + | ! | * | % | < | > | & | | | ^ | ~ | .
二元運算符 → 運算符
前置運算符 → 運算符
後置運算符 → 運算符