美文网首页
每天学一点Swift----运算符与表达式(二)

每天学一点Swift----运算符与表达式(二)

作者: 冯可乐同学 | 来源:发表于2017-05-14 09:54 被阅读8次

三.溢出运算符

1.默认情况下,Swift不允许整型变量被赋予一个超出表示范围的数,否则会报错。

2. Swift中,如果希望数据溢出时Swift程序只是对溢出的数据进行截断,而不是报错,则可以使用Swift提供的溢出运算符。

3. Swift为整型计算提供了5个以&开头的溢出运算符。

&+:溢出加

&-:溢出减

&*:溢出乘

&/:溢出除

&%:溢出求余

举个栗子:

var a : Int16 = 65535;

a = a * 10;//此时,程序不会报错,运行的结果将会把左边溢出的部分抛弃

4.值的上溢:超出的类型表示的最大范围,即真实值的左边被截断抛弃了。

5.值的下溢:超出了类型表示的最小防伪,即真实值的右边被截断抛弃了。

6.除零溢出,举个栗子:

let x = 20

let y = x / 0//报错

let z = x % 0//报错

如果写为:

let y = x &/ 0;//不会报错,得到0

let z = x &% 0;//不会报错,得到0

四.位运算符

1.位运算符通常在图形、图像处理和创建设备驱动等底层开发中使用的比较多。使用位运算符可以直接操作数据的原始

bit位。尤其是在使用自定义的协议进行通信时,使用位运算对原始数据进行编码和解码也非常有效。

2.同其他的编程语言,Swift中的位运算符有6个:

&:按位与

|:按位或

^:按位异或

~:按位取反

<<:左位移运算

>>:右位移运算

五.扩展后的赋值运算符

+=,-=,*=,/=,%=,&=,|=,^=,<<=, >>=

六.范围运算符

1.Swift提供了两个范围运算符,他们可以非常方便地构建一种数据结构,这种数据结构包含了特定范围内的所有值。

2.闭范围运算符:ā...b用于定义一个从a~b(包括a、b边界值)的所有值的范围。并且对于闭范围运算符而言,a不能

大于b

3.半开范围运算符:a..

4.使用for-in遍历的例子:

var rangle = 2...6

for num in rangle

{

print(num)

}

var books = ["abc", "123", "def", "456"]

for index in 0..

{

print("第(\index+1)本书是:(\books[index])")

}

可以看出,使用半开范围运算符对遍历数组很方便。

七.比较运算符

>, >=, <, <=, ==, !=, ===, !==

其中:

===:恒等于,该运算符通常只用于判断引用类型的变量,只有当两个引用变量都引用了同一个对象时才返回true,

否则返回false。

!==:不恒等于,同===的作用相同,只是返回值恰好相反。

八.逻辑运算符:

&&,||,!,&,|,^

九.三目运算符——?:

十. nil合并运算符

1. Swift提供了nil合并运算符:??,用法位:a ?? b;

2.功能是判断可选类型变量a是否为nil,如果a不为nil,程序将会返回可选类型a所包含的实际值;如果a为nil,则会返回默认值b。

3.使用该运算符时要求b和a所包含的类型一致。比如a是Int?,那么b就是Int类型,如果a是String?,那么b就是String类型。

4,如果??的左操作数不为nil,那么??右边的操作不会被计算,也就是说??是短路运算符。

5.??运算符的左操作数可以不是可选类型的,但是这样的话,使用??就没有意义了。

相关文章

  • 每天学一点Swift----运算符与表达式(二)

    三.溢出运算符 1.默认情况下,Swift不允许整型变量被赋予一个超出表示范围的数,否则会报错。 2. Swift...

  • 每天学一点Swift----运算符与表达式(一)

    Swift中允许重载运算符,也可以自定义运算符。 一.赋值运算符(=) 1.同Java,C语言相同,将等号右边的值...

  • 每天学一点Swift---- 运算符函数

    一.运算符重载 1. Swift的运算符提供了良好的可扩展性,Swift不仅允许开发者重新定义已有的运算符(运算符...

  • 每天学一点Swift----集合(二)

    三.字典:字典中以key-value的形式保存数据,所以同一个字典中key不能重复。 1.声明字典--两种方式 (...

  • 每天学一点Swift----函数(二)

    三.函数类型 1. Swift的每个函数都有类型的,函数类型由函数的形参列表,返回值类型组成。 2.使用函数类型定...

  • 每天学一点Swift----闭包(二)

    七.闭包表达式 1.调用闭包(使用闭包返回值):闭包的本质是功能更加灵活的代码块,因此完全可以将闭包赋值给变量(联...

  • 每天学一点Swift----泛型(二)

    四.类型约束 1.虽然程序可以对泛型形参传入任何类型,但有时候为泛型形参增加某种特定的约束也是必要的。就像字典,D...

  • python的运算符与表达式

    运算符与表达式 1.关系运算符 关系运算符:​ == != > < >= <=关系运算表达式:​ 格...

  • oracle—运算符

    一、PL/SQL表达式与运算符 算数运算符 逻辑运算符 比较运算符 关系运算符 连接运算符 二、控制结构 顺序结构...

  • C语言6 运算符和表达式

    C语言6 运算符和表达式 运算符与表达式 什么是运算符?什么是表达式? 表达式的结果 表达式不论怎么复杂。最终只有...

网友评论

      本文标题:每天学一点Swift----运算符与表达式(二)

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