Tags: Swift 学习笔记
发布时间:2015-06-19
修改时间:2015-06-19
作者:Erwin
博客地址:技术杂货铺
欢迎转载,转载请注明出处。
Swift学习笔记系列——(1)操作符
赋值没有返回值
赋值(=)操作语句没有返回值,从编译层面解决了应该用相等操作符(==)的时候误用赋值操作符(=)。
复合赋值操作符是赋值和其它操作符的组合,和赋值操作符一样,语句本身没有返回值。
浮点数可以作为第二操作数进行取余操作
8 % 2.5 // equals 0.5
示意图:
比较引用操作符
===和!==
nil联合操作符
a??b等价于a!=nil?a!:b。如果a不等于nil则整个语句等于a,否则等于b。
示例代码:
let defaultColorName = "red" var userDefinedColorName: String? // defaults to nil var colorNameToUse = userDefinedColorName ?? defaultColorName // userDefinedColorName is nil,so colorNameToUse is set to the default of "red"
范围操作符
a…b表示从a到b,包括a和b。
a..
溢出操作符
计算结果超出了可以表示范围叫做溢出。大于最大值叫做上溢,小于最小值叫做下溢。溢出会导致错误。如果只保留有效位数的内容,让运算能继续下去,需要用到溢出操作符。
Swfit提供了三个溢出操作符:溢出加操作符(&+)、溢出减操作符(&-)、溢出乘操作符(&*)。
一句话总结,溢出操作符让加减乘操作不受溢出限制。
操作符函数
类和结构体可以提供他们自己的对于已有操作符的实现。这被称作操作符重载。
中缀操作符重载不必特意声明,但前缀或后缀操作符重载需要用prefix或者postfix 声明。
定制操作符
格式:
infix|prefix|postfix operator 操作符字符 { associativity left|right|none precedence 优先级数值 }
associativity 的可能值是left、right和none。
没有指定时,associativity 的默认值是none,precedence 的默认值是100。