iOS开发Swift篇—(四)运算符

简介: iOS开发Swift篇—(四)运算符 一、运算符 1.Swift所支持的部分运算符有以下一些 赋值运算符:= 复合赋值运算符:+=、-= 算术运算符:+、-、*、/ 求余运算符:% 自增、自减运算符:++、-- 比较运算符:==、!=、>、=、 5,(7 > 6) && (9 != ...

iOS开发Swift篇—(四)运算符

一、运算符

1.Swift所支持的部分运算符有以下一些

赋值运算符:=

复合赋值运算符:+=、-=

算术运算符:+、-、*、/

求余运算符:%

自增、自减运算符:++、--

比较运算符:==、!=、>、<、>=、<=

逻辑运算符:&&、||、!

三目运算符:? :

范围运算符:..< 、...

溢出运算符:&+、&-、&*、&/、&%

 

2.赋值运算符

(1)1对1赋值

var a = 5

let b = 20

 

(2)N对N赋值(元组)

let (x, y) = (1, 2)   // x的值是1,y的值是2,并且都是常量

 

注意:跟C\OC不一样的是:Swift的赋值运算符没有返回值

if (x = y) {  }

// 上面的代码是错误的,因为x = y并没有返回具体的值

 

说明:这样的好处是防止误用 = 和 ==

 

3.算术运算符

简单使用

1 + 2       // 3

5 - 3       // 2

2 * 3       //  6

10.0 / 2.5  // 4.0

"http://" + "www.wendingding.cn"  //  "http://www.wendingding.cn"

 

4.求余运算符

%在Swift中叫“求余运算符”,也有语言叫做“模运算符”

9 % 4 // 1

-9 % 4 // -1

9 % -4 // 1

-9 % -4 // -1

提示求余结果的正负跟%左边数值的正负一样

 

注意:跟C语言不一样的是,Swift的%支持浮点数的计算

8 % 2.5  // 0.5

 

5.Bool类型

Bool类型,也被称为逻辑类型(Logical),就2种取值

true:真

false:假

 

注意:在C语言中:0是假,非0就是真;而在Swift中没有这种概念

if语句的条件必须是Bool类型的值

(1)错误写法

if (10) {

    println("条件成立")

}

 

(2)正确写法

if (true) {

    println("条件成立")

}

 

6.三目运算符

比较运算符\逻辑运算符会返回Bool类型的值,取值有2种可能

true:真,6 > 5,(7 > 6) && (9 != 7)

false:假,6 < 5,(7 >= 6) && (9 == 7)

 

三目运算符的条件必须是Bool类型的值

(1)错误写法

let a = 10

let c = a ? 100 : 200

 

(2)正确写法

let c = a != 0 ? 100 : 200

let c = false ? 100 : 200

 

7.范围运算符

范围运算符用来表示一个范围,有2种类型的范围运算符

闭合范围运算符:a...b,表示[a, b],包含a和b

半闭合范围运算符:a..<b,表示[a, b),包含a,不包含b

 

举例:

// index的值从1~5

 

// index的值从1~4

 

8.溢出运算符

(1)简单说明

每种数据类型都有自己的取值范围,默认情况下,一旦赋了一个超出取值范围的数值,会产生编译或者运行时错误

注意:下面的写法是错误的

let x = UInt8.max

let y = x + 1

第2行代码会在运行时报错(运行时错误)

   

提示:上面是运行时错误,下面的错误提示是编译时错误。

  

Swfit为整型计算提供了5个&开头的溢出运算符,能对超出取值范围的数值进行灵活处理

溢出加法 &+

溢出减法 &-

溢出乘法 &*

溢出除法 &/

溢出求余 &%

(2)值的上溢

let x = UInt8.max

let y = x &+ 1

第1行代码过后:x的值是 255(最大值)

第2行代码过后:y的值是 0(最小值)

(3)值的下溢

let x = UInt8.min

let y = x &- 1

第1行代码过后:x的值是 0(最小值)

第2行代码过后:y的值是 255(最大值)

  

有符号整数也有类似的溢出现象

let x = Int8.min

let y = x &- 1

第1行代码过后:x的值是 -128(最小值)

第2行代码过后:y的值是 127(最大值)

  

(4)除零溢出

默认情况下,一个数除于0,或者对0求余数,编译器会直接报错

let x = 10

let y = x / 0

let z = x % 0

第2、3行代码:编译器都会报错

 

如果使用溢出运算符,就不会报错

let x = 10

let y = x &/ 0

let z = x &% 0

y和z的值最终都是0

 

二、断言

1.简单说明

断言是一种实时检测条件是否为true的方法

如果条件为true,那么代码继续执行

如果条件为false,就抛出错误信息,直接终止程序的运行

 

2.断言的用法

使用全局的assert函数

assert函数接收一个Bool表达式和一个断言失败时显示的消息

assert(index >= 0, "index必须大于0")

如果index大于等于0,就继续执行后面的代码

如果index小于0,就抛出错误信息(下面的黑色字),直接终止程序的运行

assertion failed: index必须大于0

 

assert(index >= 0)

可以省略错误信息,但不推荐,这样不利于调试

 

3.使用场景和注意

(1)下面的场景,可能用到断言

检测数组的索引:不能太小或者太大,否则造成数组越界

检测传递给函数的参数:如果是无效参数,将不能在该函数中使用

 

(2)断言的使用注意

断言会导致程序运行的中止,如果不管条件是否成立,都要继续往下执行代码,那就不能用断言

断言可以保证错误在开发过程中会被及时发现,但发布的应用里最好不要使用

如果一个程序用着用着就突然崩溃闪退,会严重影响用户体验

目录
相关文章
|
2月前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
22天前
|
iOS开发 开发者 MacOS
深入探索iOS开发中的SwiftUI框架
【10月更文挑战第21天】 本文将带领读者深入了解Apple最新推出的SwiftUI框架,这一革命性的用户界面构建工具为iOS开发者提供了一种声明式、高效且直观的方式来创建复杂的用户界面。通过分析SwiftUI的核心概念、主要特性以及在实际项目中的应用示例,我们将展示如何利用SwiftUI简化UI代码,提高开发效率,并保持应用程序的高性能和响应性。无论你是iOS开发的新手还是有经验的开发者,本文都将为你提供宝贵的见解和实用的指导。
117 66
|
8天前
|
存储 监控 API
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
|
1月前
|
开发框架 Android开发 iOS开发
安卓与iOS开发中的跨平台策略:一次编码,多平台部署
在移动应用开发的广阔天地中,安卓和iOS两大阵营各占一方。随着技术的发展,跨平台开发框架应运而生,它们承诺着“一次编码,到处运行”的便捷。本文将深入探讨跨平台开发的现状、挑战以及未来趋势,同时通过代码示例揭示跨平台工具的实际运用。
|
1月前
|
Java 调度 Android开发
安卓与iOS开发中的线程管理差异解析
在移动应用开发的广阔天地中,安卓和iOS两大平台各自拥有独特的魅力。如同东西方文化的差异,它们在处理多线程任务时也展现出不同的哲学。本文将带你穿梭于这两个平台之间,比较它们在线程管理上的核心理念、实现方式及性能考量,助你成为跨平台的编程高手。
|
2月前
|
存储 前端开发 Swift
探索iOS开发:从新手到专家的旅程
本文将带您领略iOS开发的奇妙之旅,从基础概念的理解到高级技巧的掌握,逐步深入iOS的世界。文章不仅分享技术知识,还鼓励读者在编程之路上保持好奇心和创新精神,实现个人成长与技术突破。
|
2月前
|
安全 IDE Swift
探索iOS开发之旅:从初学者到专家
在这篇文章中,我们将一起踏上iOS开发的旅程,从基础概念的理解到深入掌握核心技术。无论你是编程新手还是希望提升技能的开发者,这里都有你需要的指南和启示。我们将通过实际案例和代码示例,展示如何构建一个功能齐全的iOS应用。准备好了吗?让我们一起开始吧!
|
2月前
|
安全 开发工具 Swift
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发。基础语法涵盖变量、常量、数据类型、运算符、控制流等,高级特性包括函数、闭包、类、结构体、协议和泛型。
36 2
|
2月前
|
安全 Swift iOS开发
Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法
本文深入探讨了 Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法。Swift 以其简洁、高效和类型安全的特点,结合 UIKit 丰富的组件和功能,为开发者提供了强大的工具。文章从 Swift 的语法优势、类型安全、编程模型以及与 UIKit 的集成,到 UIKit 的主要组件和功能,再到构建界面的实践技巧和实际案例分析,全面介绍了如何利用这些技术创建高质量的用户界面。
34 2
|
2月前
|
数据处理 Swift
Swift 中的运算符和表达式是构建程序逻辑的基础,包括算术、关系、逻辑、位运算符及赋值运算符,用于数值计算、条件判断、位操作、赋值与更新等
Swift 中的运算符和表达式是构建程序逻辑的基础,包括算术、关系、逻辑、位运算符及赋值运算符,用于数值计算、条件判断、位操作、赋值与更新等。掌握这些工具是编写高效代码的关键。
34 1