对应《Swift UI 完全开发》原书第5章
P.S. 文章内容为个人阅读后认为的重点,顺序与原书存在不一致,有任何疑问欢迎评论。
考虑到本博客下已经翻译了官方的文档A Swift Tour的内容,本章节只作重点内容和联系开发实际部分的概括,如果对于内容存在不理解的朋友可以购买《Swift UI 完全开发》一书查阅。
存在任何问题可以在评论区留言,会及时回复。
5.1 常量和变量
let text = "Hello,World!"
var body:some View{
Text(text)
}
上述代码中,使用let
关键字声明了一个常量 text ,赋值为”“Hello,World”“,然后在Text
文字控件中的值,使用声明的“text”来代替。
这样的好处是,当我们需要去修改文字的内容时,只需要修改声明好的 text ,而不需要在代码块中寻找控件,这一方面可以节省编程时间,另一方面,在实际编程过程中很重要的思想是组件化,即构建一个具有完整功能的组件,开发者可以在项目的不同页面,通过传入值的方式复用该组件。这无疑大量减少了代码量,而且增强了App中UI样式的统一性。
与let
声明常量相对应的是var
关键字声明的变量,常量的参数内容通常是不可变的,常用于声明官网、隐私政策链接地址、网络请求URL地址等。二变量可以先给予一个默认值,然后在实际场景中给变量重新赋值,已显示不同的内容。例如Toast冒泡提示,其内容就是使用var
声明的变量,在不同场景下提示不同的内容。
在SwiftUI实际开发过程中,我们会创建一个单独的Swift文件,将项目中使用参数时,就从这个Swift文件中广联查询。当参数值发生变化时,则项目中所有使用到该参数的地方都会发生变化。
注释分为两种:1、代码块命名,//
来进行注释,如果需要突出注释,可以在内容后增加MARK:-
来凸显注释内容。2、多行注释/*注释内容*/
,通常来解释实现方法,或者注释这个代码块
5.2 Swift中的数据结构
数据类型 | 类型名称 | 类型说明 |
---|---|---|
Int | 整型 | 用于表示整数,它可以用来表示各种长度 |
Double和Float | 浮点数 | 用于表述小数,Double是64位浮点数,Float是32位浮点数 |
String | 字符串 | 用来表示文本的一系列字符 |
Bool | 布尔值 | 表示 true 或者 false |
Color | 颜色值 | 用来表示颜色 |
Array | 数组 | 数组是元素的有序集合,在Swift中,数组可以包含任何类型的数据,键可以是任何可散列类型,如字符串或者整数 |
Dictionary | 字典 | 字典是键值对的无需集合。在Swift中,字典可以包含任何类型的数据,键可以是任何可散列类型,如字符串或者整数 |
Optional | 可控类型 | 用于表示一个可能不存在的值。可控类型可以包含一个值,也可以nil |
Tuples | 元祖 | 元祖师一组组合成单个复合制的值。在Swift中,元祖可以包含任何数量的元素,可用于从函数返回多个值,也可以将相关值分组在一起 |
Enums | 枚举 | 通常用来定义一组相关的值,比如星期几 |
实际开发过程中,无论声明的是参数、结构体还是页面名称,我们在命名的时候一般遵循“驼峰命名法”,也就是开始单词位小写,后面组合的单首字母大写,例如textSize等。
5.3 运算符及使用场景
运算符 | 示例 | 说明 |
---|---|---|
赋值运算符 | = | 用于给参数赋值 |
算数运算符 | +、-、*、/、% | 加、减、乘、除、求模 |
组合赋值运算符 | +=、-=、*=、/=、%= | 用于将赋值操作和算数运算结合起来 |
三元运算符 | 条件?结果1:结果2 | 用于根据条件判断结果,符合条件呈现结果1,不符合条件时呈现结果2 |
比较运算符 | ==、!=、>、< | 用于比较两个值,并返回一个布尔值,输出的结果是 true 或者 false |
逻辑运算符 | &&、||、! | 与、或、非 |
空合运算符 | 条件为空??默认值 | 用于在控件赋值为空时给一个默认值,避免出错 |
区间运算符 | ... 、..< 、...<2 | 闭区间、半开区间、单侧区间,常用语确定数据范围 |