0
点赞
收藏
分享

微信扫一扫

Swift实用小册02:运算符的使用

在本章中,你将学会一些常用的运算符的使用。

前言

和​​Apple​​​官网或者网上分享的教程类文章不同,我将以实际开发角度讲述​​Swift​​​语言的一些概念和用法,方便大家更好地学习和掌握​​Swift​​语言。

这同时也是对自己学习​​Swift​​语言过程的知识整理。

如有错误,以你为准。

我们新建一个​​PlayGround​​​文件,命名为​​SwiftOperator​​。

Swift实用小册02:运算符的使用_运算符

赋值运算符

在​​Swift​​​中,我们使用”​​=​​“作为赋值运算符,示例:

//赋值运算符

我们将屏幕宽度赋值给​​screenWidth​​​,将屏幕高度赋值给​​screenHeight​​​,后面我们就可以直接使用​​screenWidth​​​和​​screenHeight​​。

我们也可以用元组的方式进行赋值,元祖可以将多个值组合成一个复合值,然后通过赋值的方式​​拆分​​成多个变量/常量,示例:

let (bookName,bookPrice) = ("秒速五厘米", 45)

赋值后,​​bookName​​​的值为"​​秒速五厘米​​​”,​​bookPrice​​​的值为“​​45​​”。

算术运算符

在​​Swift​​​中,常见的算术运算符有:​​加、减、乘、除、取余​​(很少用到),示例:

//算术运算符

.frame(width: screenWidth*0.5 + 10, height: screenHeight/2 - 20)

在上述的代码中,假设手机屏幕宽高为​​375*667​​。

宽度​​width​​​为屏幕宽度​​screenWidth​​​乘以​​0.5​​​,再加​​10​​​,最终宽度为​​197.5​​。

高度​​height​​​为屏幕高度​​screenHeight​​​除以​​2​​​,再减​​20​​​,最终高度为​​313.5​​。

另外一个知识点,加号运算符除了数值计算外,还支持​​字符串拼接​​,示例:

//算术运算符

let juejinId = "3897092103223517"
let indexUrl = "https://j.cn/user/"

在上述代码中,我们声明了​​ID​​​,然后首页​​URL​​​赋值为固定链接通过​​加号​​​运算符​​拼接​​字符串。

组合赋值运算符

和其他语言一样,​​Swift​​也支持组合赋值,示例:

//组合赋值运算符

var number = 0

if !enableUsed {
number += 1

在上述的代码中,我们声明了一个变量​​number​​​,它的值为​​0​​​,当​​enableUsed​​​为​​false​​​时,则​​number = number+1​​ 。

比较运算符

比较运算符也是​​Swift​​语言开发过程中常用的运算符,示例:

// 比较运算符-判断文字合法性

func textError(text: String){
text.count < 1 ? false : true

我们定义了一个判断文字合法性的方法,当输入的文字的字数​​小于​​​1的时候,返回​​Bool​​​值​​false​​​。如果文字字数​​大于​​​1,则返回​​Bool​​​值​​true​​。

常见的比较运算符有:​​等于(==)、不等于(!=)、小于(<)、大于(>)、大于等于(>=)、小于等于(<=)​​。

值得注意的一点是,比较运算符中的“​​等于​​​”用的是“​​==​​​”,而我们的​​赋值​​​运算符用的赋值是“​​=​​”,这点别搞混了。

三元运算符

三元运算符是一种比较特殊也比较常见的运算符,它有点类似我们的​​if、else​​逻辑,示例:

// 三元运算符

.background(enableUsed ? .black : .white)

在上面的代码中,我们给视图设置填充颜色,并使用​​enableUsed​​​来判断,如果​​enableUsed​​​的值为​​true​​​,则它的颜色为​​black​​​黑色,不然它就是​​white​​白色。

我们可以注意到三元运算符的格式:

条件 ? 结果1 : 结果 2

我们使用三元运算符可以有效简化我们的代码,在一些场景下,就无需再使用​​if、else​​来进行二选一的判断了。

空合运算符

空合运算符​​(A??B)​​​主要是可以对参数进行​​非空判断​​​,如果参数​​有值​​​,则​​解析​​​这个值,如果​​没有​​​则返回我们​​设定​​的值,示例:

//空合运算符

struct Model:Identifiable {
var

在上面的代码中,我们​​Text​​​内的文字来源于我们的​​Model​​​,但如果在前面我们​​Model.name​​​没有赋值的情况下,​​Text​​​解析不了值,则回返回“​​文如秋雨​​”。

在​​MVVM​​开发模式中经常会用到空合运算符。

区间运算符

区间运算符有几种:​​闭区间运算符、半开区间运算符、单侧区间运算符​​。

其中闭区间运算符是最常见的区间运算符,示例:

//区间运算符-闭区间

struct ContentView: View {
var body: some View {

// 简单的列表
List {
ForEach(1 ... 4, id: \.self) {
Text("第 \($0)页")
}
}
}
}

在上述代码中,​​ForEach​​​循环的区间​​1 ... 4​​​就是闭区间运算符的使用,得到的结果就是“​​第1页、第2页、第3页、第4页​​”。

​闭区间​​​运算符是​​包含​​​了前后两个值,​​半开区间​​​运算符也类似,只是它“​​包头不包尾​​”,示例:

//区间运算符-半开区间

ForEach(1 .. <4, id: \.self) {
}

很容易理解,半开区间​​1 .. <4​​​,得到的结果是“​​第1页、第2页、第3页​​”。

而​​单侧区间​​​运算符则是“​​一头无限延伸​​”,也就是我们只指定一边的区间,另一边不指定。

单侧区间运算符格式为“​​..<2​​​”,但这​​不​​​代表是​​0~2​​​,它是向一侧无限延伸,还包括“​​-1、-2、-3…..​​”,因此使用常见不多。

逻辑运算符

常见的逻辑运算符包括:​​与(&&)、或(||)、非(!)​​。

逻辑运算符在实际开发中用到的常见太多了,示例:

//逻辑运算符


//逻辑非
if !enableUsed {
self.showToastMessage = "请输入您的昵称"
self.showToast = true
}

//逻辑或
.scaleEffect(
(titleView.width || ImageView.width < 100) ? 0.95 : 1)

//逻辑与
.offset(x: titleView.width && ImageView.width < 100 ?ImageView.width : 0)

逻辑非运算符代表“​​取反​​​”,如果​​enableUsed​​​的值为​​false​​​,则​​!enableUsed​​​的值为​​true​​。

逻辑或运算符是两者​​其中一项满足​​​条件,则结果是​​0.9​​​,如果两者​​都不满足​​​则为​​0​​。

逻辑与运算符则要求​​两者必须都满足​​​和这个条件,否则就为​​0​​。

Swift实用小册02:运算符的使用_SwiftUI_02

以上就是本章的全部内容。

快来动手试试吧!

如果本专栏对你有帮助,不妨点赞、评论、关注~

举报

相关推荐

0 条评论