美文网首页swift
Swift 中的高级操作符

Swift 中的高级操作符

作者: 乐人曹 | 来源:发表于2014-08-25 17:57 被阅读0次

位操作符

非:~
与:&
或:|
异或:^

左移:<<
右移:>>

对于无符号表示和有符号表示,位移行为不一样。

溢出运算符

Overflow addition (&+)
Overflow subtraction (&-)
Overflow multiplication (&*)
Overflow division (&/)
Overflow remainder (&%)

上溢

   0 11111111
&+ 0 00000001
=  1 00000000
= 0

下溢

   00000000
&+ 00000001
=  11111111
= 255

for both signed and unsigned integers,
overflow always wraps around from the largest valid integer value back to the smallest,
and underflow always wraps around from the smallest value to the largest.

除0

&/&% 除零都返回零。

运算符函数

struct Vector2D {
    var x = 0.0, y = 0.0
}
func + (left: Vector2D, right: Vector2D) -> Vector2D {
    return Vector2D(x: left.x + right.x, y: left.y + right.y)
}

let vector = Vector2D(x: 3.0, y: 1.0)
let anotherVector = Vector2D(x: 2.0, y: 4.0)
let combinedVector = vector + anotherVector

前缀、后缀

添加 prefixpostfix 修改符。

prefix func - (vector: Vector2D) -> Vector2D {
    return Vector2D(x: -vector.x, y: -vector.y)
}

混合赋值运算符

把左操作数标记为 inout

func += (inout left: Vector2D, right: Vector2D) {
    left = left + right
}
prefix func ++ (inout vector: Vector2D) -> Vector2D {
    vector += Vector2D(x: 1.0, y: 1.0)
    return vector
}

默认的赋值运算符和三元运算符(a ? b : c) 不能重载。

等号运算符

自定义的类和结构没有默认的等号比较运算。

自定义运算符

[prefix/infix/postfix] operator [opName] {
  associativity [left/right/none] precedence [preValue]
}

先用上述的语法声明运算符,然后为自己的类实现运算。
associativity 默认为 none
precedence 默认为 0.

相关文章

  • Swift 中的高级操作符

    位操作符 非:~与:&或:|异或:^ 左移:<<右移:>> 对于无符号表示和有符号表示,位移行为不一样。 溢出运算...

  • Swift 操作符

    Swift 支持重载操作符这样的特性。可以直接重载像 +,-,* 这样的操作符,因为 Swift 中已经有定义了 ...

  • iOS学习周报三

    在Swift中用??操作符替代判空 在C#中也是有??操作符的,用法和Swift类似用法如下: 相当于 开源项目 ...

  • Swift------高级操作符

    1、概述 除了一些基本的操作符,Swift提供了几种能够执行更加复杂值操纵的高级操作符。其中包括你所熟悉的C和OC...

  • 搜索术

    高级操作符//高级操作符与关键词之间不要留有空格。含有all的高级操作符不要与其他操作符一同使用,含all的高级操...

  • Language Guide --- Type Casting

    swift中的类型转换使用is 和 as 操作符。 Checking Type 使用is操作符判断一个实例是否是特...

  • Swift教程之基本操作符

    基本操作符 本章介绍Swift中的常见操作符,并介绍使用自定义操作符实现复杂运算。 术语 操作符包括一元、二元和三...

  • Swift 模式匹配

    在 Swift 中,使用 ~= 来表示模式匹配的操作符。如果我们看看 API 的话,可以看到这个操作符有下面几种版...

  • Swift enum(枚举)使用范例

    来源:Swift 中枚举高级用法及实践Advanced & Practical Enum usage in Swift

  • swift初探

    ?操作符 Swift中是可以声明一个没有初始值的属性,Swift中引入了可选类型(Optional)来解决这一问题...

网友评论

    本文标题:Swift 中的高级操作符

    本文链接:https://www.haomeiwen.com/subject/ryqytttx.html