1. 程式人生 > >swift3.0自定義運算子

swift3.0自定義運算子

一元運算子

右側

postfix operator |??
postfix func |?? (left: String?) -> String! {
    return left != nil ? left : "空"
}

以上程式碼定義了一個新的運算子 |?? 判斷左側所給出的變數是否為nil,如果不為nil就返回該變數,如果為nil就返回 "空"

這時我們在使用的時候就可以

let test1, test2: String?

        test1 = nil
        test2 = "test2"

        print(test1|??)
        print
(test2|??)

列印結果為

空
test2

左側

同右側, 將postfix 改為 prefix

二元運算子

infix operator |?|
func |?| (left: String, right: String) -> String {
    return left + left + right + right
}

以上程式碼定義了一個新的運算子 |?| 將左側和右側變數分別複製兩次再+ 到一起
執行後結果為

空空test2test2