持续创造,加速成长!这是我参与「日新计划 6 月更文应战」的第2天,点击查看活动详情
在本章中,你将学会一些常用的运算符的运用。
前语
和Apple
官网或许网上分享的教程类文章不同,我将以实际开发视点讲述Swift
言语的一些概念和用法,便利咱们更好地学习和把握Swift
言语。
这一起也是对自己学习Swift
言语过程的常识整理。
如有过错,以你为准。
咱们新建一个PlayGround
文件,命名为SwiftOperator
。
赋值运算符
在Swift
中,咱们运用”=
“作为赋值运算符,示例:
//赋值运算符
let screenWidth = UIScreen.main.bounds.size.width
let screenHeight = UIScreen.main.bounds.size.height
咱们将屏幕宽度赋值给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:///user/" + appId
在上述代码中,咱们声明晰ID
,然后主页URL
赋值为固定链接经过加号
运算符拼接
字符串。
组合赋值运算符
和其他言语相同,Swift
也支撑组合赋值,示例:
//组合赋值运算符
var number = 0
if !enableUsed {
number += 1
}
在上述的代码中,咱们声明晰一个变量number
,它的值为0
,当enableUsed
为false
时,则number =number+1
。
比较运算符
比较运算符也是Swift
言语开发过程中常用的运算符,示例:
// 比较运算符-判别文字合法性
func textError(text: String) -> Bool {
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 name: String
}
Text(Model.name ?? "文如秋雨")
在上面的代码中,咱们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
。
以上就是本章的全部内容。
快来动手试试吧!
假如本专栏对你有协助,不妨点赞、谈论、重视~