Swift中的"可溢出"算术运算符

大家知道Swift中拥有和C,Objc类似的算术运算符,它们分别是:

+

-

*

/

%

但是你可能不知道这些Swift中的运算符和C,Objc语言中的有一个很大的不同之处,就是它们不可以被”溢出”,无论是上溢还是下溢!

在C之类的较低级语言中,如果对可能发生溢出的算术数值做算术运算,结果就会发生所谓的上溢或下溢,比如你对最大的Int32正数加一结果是一个极大的负数:-2147483648

不过在Swift中,如果发生这种情况,运行时就会抛出异常,你的App就会挂掉!

这可能不是你想要的结果,但是Swift本身还提供了一系列算术操作符对应的”可溢出”操作符,如下:

&+

&-

&*

&/

&%

它们的行为和C,Objc中对应的运算符的行为完全一致,所以你现在可以这样使用而不会招致运行时错误了:

不过值得注意的是,这些”可溢出”运算符没有复合语法,所以你不可以这么写哦:

var x = Int32.max
x &+= 100
时间: 2024-11-05 12:24:10

Swift中的"可溢出"算术运算符的相关文章

[原创]java WEB学习笔记39:EL中的运算符号(算术运算符,关系运算符,逻辑运算符,empty运算符,条件运算符,括号运算符)

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

Python中的/和//算术运算符

通常C/C++中,"/ " 算术运算符的计算结果是根据参与运算的两边的数据决定的,比如: 6 / 3 = 2 ; 6,3都是整数,那么结果也就是整数2; 6.0 / 3.0 = 2.0 ; 6.0,3.0是浮点数,那么结果也是浮点数2.0,跟精确的说,只要" / " 两边有一个数是浮点数,那么结果就是浮点数. 在Python2.2版本以前也是这么规定的,但是,Python的设计者认为这么做不符合Python简单明了的特性,于是乎就在 Python2.2以及以后的版本

Swift之需要注意的基本运算符和高级运算符

在去年翻译<Swift编程入门经典>(Swift1.0版本,基于Xcode6)这本书时,系统的搞了搞Swift语言,接下来的一段时间内打算持续更新一下相关Swift语言的一些东西, 不过现在已经是Swift2.0版本了,区别还是不小的.并且目前在工作中正重构着整个项目的代码,之后根据一些项目实例再更新一些关于代码重构的博客与大家交流一下,然后再整理一些Android开发的一些东西吧,当然是类比着iOS开发了. 废话少说,开始今天博客的主题.有些小伙伴看到今天的博客Title可能会笑到,基本运算

Java算术运算符

大家都知道什么是算术运算符他就是数学中的 + - * / 除了这些之外java中还有一种算术运算符:% 取余(取膜) % 他可以叫取余也可以说是取膜两种叫法都可以.那他是用来干什么的?例如:10%3 拿着右边的3问: 10能不能把3整除呢,如果能那么结果为0,如果不能整数,结果就是这个余数.所以10%3=1结果为:1就是拿着10/3=3余数为1,把这个余数1交给了取余的结果. 如图4.2所示: 图4.2 可以变量直接接收取余值 或 加数值等都可以,例如:int i = 10%3; 或 int i

MySQL数据库中的算术运算符

MySQL数据库中的算数运算符 MySQL数据库中的算术运算符 一.运算符的概述: 运算符在MySQL数据库中也是很重要的知识体,在执行sql语句的时候这个运算符对操作数据帮助很大.其中运算符的运用可以帮助你减省大量的时间,操作起来也比较灵活. 二.运算符 运算符主要包括"算数运算符"."比较运算符"."罗运算符"."位运算符"四大类,下面我们就一次学习一下. 1.算术运算符 算术运算符在sql语句的时候经常使用,例如对表的字

[Swift] Day01:Swift 中的基本运算符

今天主要看的内容是 Swift 中的基本运算符.记录一下. 空值合并运算符 (Nil Coalescing Operator) a ?? b 中的 ?? 就是是空值合并运算符,会对 a 进行判断,如果不为 nil 则解包,否则就返回 b . 使用的时候有以下两点要求:- a 必须是 optional 的- b 必须和 a 类型一致 也就是说,a 一定要有被备胎的可能,b 一定要有做备胎的资格. 其实也就是对三目运算符的简写: a != nil ? a! : b 或者 a == nil ? b :

慕课网-安卓工程师初养成-3-2 Java中的算术运算符

来源:http://www.imooc.com/code/1279 算术运算符主要用于进行基本的算术运算,如加法.减法.乘法.除法等. Java 中常用的算术运算符: 其中,++ 和 -- 既可以出现在操作数的左边,也可以出现在右边,但结果是不同滴 运行结果: 运行结果: 一定要注意哦!自增和自减运算符只能用于操作变量,不能直接用于操作数值或常量!例如 5++ . 8-- 等写法都是错误滴! PS:% 用来求余数,也称为”取模运算符“ 任务 亲,算术运算符的使用你学会了吗?让我们来检验一下吧.

javascript中算术运算符规则

javascript中提供了几种算术运算符,+(加)  -(减)  *(乘)  /(除)  %(余),常规用法与数学上的一致:  但还规定一些特殊规则: 注:JavaScript中保存数值的方式,可以保存正零(+0)和负零(-0):正零与负零被认为相等. 乘性操作符(*): 如果结果太大或太小,那么生成的结果是 Infinity 或 -Infinity. 如果某个运算数是 NaN,结果为 NaN. Infinity 乘以 0,结果为 NaN Infinity 乘以 0 以外的任何数字,结果为 I

算术运算符中的自增与自减的注意事项

++.--两种运算符都是单目运算符,具有向右结合性(也就是优先与运算符右边的变量结合),而且他们的优先级比其他算术运算符高.当++或--运算符置于变量的左边时,称为前置运算,表示先进行自增或自减运算再使用变量的值,而当++或--运算符置于变量的右边时,称为后置运算,表示先引用变量的值再自增或自减运算. 如,设i=1,j=2,则在计算++i+j--的结果时,先进行++i运算,得i=2,再进行j--运算,根据后置运算规则可知,系统将先引用j的原始值2与i的新值2相加,之后再进行j--,得j=1.因此