Swift 高階運算子

2021-06-28 19:26:14 字數 2798 閱讀 9086

//***********************************

////            

高階運算子

// &+ :

向上溢位

// &- :

向下溢位

// &/ :

除零溢位,

0作為被除數時結果是0

// &% :

模零溢位,對

0求餘結果是0

////***********************************

varwilloverflow =

uint8

.max    

//等於

255

willoverflow

= willoverflow

&+ 1

// 等於0

willoverflow

= willoverflow

&+ 1

// 等於2

varwillunderflow =

uint8

.min      

// 等於0

willunderflow

= willunderflow

&- 1

// 等於

255

let x = 1

lety =

x&/

0// 等於0

letz =

x&%

0// 等於0

//***********************************

////

運算子函式

/運算子過載

// 讓已有的運算子對自定義類和結構體進行運算

// 1.

中置運算子

// 2.

前置和後置運算子

// 3.

組合賦值運算子

// 4.

比較運算子

// 5.

自定義運算子

////***********************************

//*********************

//     1.

中置運算子

//*********************

struct vector2d

func + (left: vector2d,right: vector2d) -> vector2d

let vector1 = vector2d(x:1.0, y: 2.0)

let vector2 = vector2d(x:3.0, y: 4.0)

let vector3 = vector1

+vector2

//

//*********************

//  2.

前置和後置運算子

// 

前置:prefix

// 

後置:postfix

//*********************

prefix

func-(vector: vector2d) -> vector2d

postfix

func++(vector: vector2d) -> vector2d

let positive = vector2d(x:3.0, y: 4.0)

letnegative =

-positive//

letplusplus =

positive

++//

//*********************

//  3.

組合賦值運算子

// 

如: +=

// 

需要使用

inout

修飾形參

//*********************

func += (inoutleft: vector2d, right: vector2d)

var original = vector2d(x:1.0, y: 2.0)

let v1 = vector2d(x:3.0, y: 4.0)

original

+=v1//

//*********************

////  4.

比較運算子

////*********************

func == (left: vector2d,right: vector2d) -> bool

func != (left: vector2d,right: vector2d) -> bool

//*********************

////  5.

自定義運算子

// 

需要先使用關鍵字

operator

在全域性域宣告

// 

前置:prefix

// 

後置:postfix

// 

中置:infix

////*********************

prefix

operator

+++ {}

prefix

func +++(inout vector: vector2d)-> vector2d

//******************************

//// 

自定義中置運算子的優先性和結合性

////******************************

swift高階運算子

1.按位取反運算子 兩個進行比較,如果對方是0,那麼另一方就得取1,相反。let initialbits uint8 0b00001111 let invertedbits initialbits 等於 0b11110000 2.按位與運算子 兩個進行比較,當兩方都為1時,結果才會為1。let fi...

swift 比較運算子

import foundation 比較運算子中的 比較 二字指的是兩個運算數值分量間的大小關係,與數學意義上的比較概念相同,只不過比較運算子的表示方式喲所不同。等於 a b 不等於 a b 大於 a b 小於 a b 大於等於 a b 小於等於 a b 恒等 不恒等 每乙個比較運算都會返回乙個標識...

Swift 位運算子

import foundation 位運算子通常在如影象處理和建立裝置驅動等底層開發中使用,使用它可以單獨運算元據結構中原始資料的位元位。去使用乙個定義的協議進行通訊的時候,運用位運算子來對原始資料進行編碼和解碼也是非常有效的。1.按位取反運算子 按位取反運算子 是對乙個運算元的每一位都取反 let...