联系人:石虎 QQ:1224614774 昵称: 嗡嘛呢叭咪哄
QQ群:807236138 群称: iOS 技术交流学习群
QQ群:713799633 群称:iOS技术交流学习群-2
参考:
《swift 从入门到精通 》~ 基础篇(运算符、字符串)https://blog.csdn.net/shihuboke/article/details/110203341
《swift 从入门到精通 》~ 基础篇(集合)https://blog.csdn.net/shihuboke/article/details/110672581
一、数据类型
数据类型包括常量、变量、表达式
常量:就是在程序运行过程中值不会发生改变的量 ,用关键字 let 声明 let name = “puxin”
变量: 就是在程序运行过程中值可以发生改变的量,用关键字 var 声明 var age = 12
表达式 定义: let index = % 2
类型标注
可以在一行中声明多个变量或常量,用逗号分隔
常量和变量的名字不能包含空白字符、数学符号、箭头、保留的(或者无效的) Unicode 码位、连线和制表符。也不能以数字开头,尽管数字几乎可以使用在名字 其他的任何地方
驼峰拼写发 : 首字母小写,其他单词的首字母大写
类型声明 : swift 4 新提出的,加上类型声明是告诉编译器该常量和变量中存储的值得类型,同时还要进行初始化,即给该常量和变量赋初值
定义 : let name: String = “”
var age: Int = 1
打印输出函数 print()
向代马中添加注释:
注释是代码的一个重要的组成部分,可以提高大幅度提升代码的可读性,一般高质量的代码中大约有三分之一的篇幅为注释
格式: // /** */ ///
语句分隔符:
写完一行后,不用加分号,如果是一行中输入多条语句时,可以使用逗号作为一条语句的分隔符
例子: var a_b = “a and b” , aperson = “one person”
整型和浮点型
数字有二种主要类型即是整型和浮点型
整型分有符号类型 和无符号类型
有符号类型 : Int8 Int16 Int32 Int64
无符号类型: UInt8 UInt16 UInt32 UInt64
越界赋值:
给不同类型的整数赋值时注意取值范围,不能越界赋值 .
通过整型的 min 和max 属性获取不同整型的最小值和最大值
print("Int8.max = \(Int8.min) Int16.min = \(Int16.min) Int32.min = \(Int32.min) \(Int64.min) INT8_MIN = \(INT8_MIN)")
print("Int8.max = \(Int8.max) Int16.max = \(Int16.max) Int32.max = \(Int32.max) Int64.max = \(Int64.max) INT8_MAX = \(INT8_MAX)")
打印结果:
Int8.max = -128 Int16.min = -32768 Int32.min = -2147483648 Int64.min = -9223372036854775808 INT8_MIN = -128
Int8.max = 127 Int16.max = 32767 Int32.max = 2147483647 Int64.max = 9223372036854775807 INT8_MAX = 127
浮点型混合运算
浮点型 swift 提供二种,对精准不高的使用的浮点型 float 和双精度浮点型类型 double
布尔值
布尔值只有二个值”真”和”假” 分别用关键字 true 和 false 表示.
例子: var daylight: Bool = true
与布尔型相关的逻辑运算符,也叫布尔运算符
元组型
元祖型定义:
元祖型是有一个或者多个数据类型组成的复合类型,其中每一个数据类型可以是任何类型,并不要求是相同的
例子: let http404Error = (404, “Not Found”)
使用场景: 表示矩形长宽、三维坐标、等
读取元组
读取有三种方法:
第一种:将元组的值赋值给另一个元组
例子:
let http404Error = (404, "Not Found")
let (code, description) = http404Error
print("code=== \(code)") // code=== 404
print(description) // Not Found
第二种:通过下标访问元组的特定元素,下标是从 0 开始分别自左向右表示不同的元素
例子:
print(http404Error.0) // 404
print(http404Error.1) // Not Found
第三种:在定义元组的时候给每一个元素命名,通过这些元素的名字获取元素的值
例子:
let http404Error = (code: 404, description: "Not Found")
print(http404Error.code) // 404
print(http404Error.description) // Not Found
补充:
优点 — 可作为函数的返回值使用,大大增加返回值的可读性,
弊端 — 元组不适合用来创建复杂的数据结构,特别是长期使用的数据类型,这种情况应该使用结构体或者类描述数据结构
可选型
1 .Swift 有一个特殊的数据类型,通常称为可选型 optional, 可选型是 swift 内建安全特性的一个重要的体现
2 .可选型用来表示一个变量或者常量可能有值,也可能无值,用 nil 表示空 ,注意(整数 0 不是 nil, 空字符串””也不是 nil )
3 .nil 可以理解为变量或者常量对应的存储空间里没有数据
例好处区别子:
用字符串描述:
var studentInObjc: (name : String, idNUmber: String, age: Int, reward: String)
studentInObjc = ("Tom", "13261089216", 20, "")
// 描述中的reward 没有用可选类型,赋值中的""虽然是空字符串也是一个取值,如果有文档规定空字符表示特定的情况,否则其他程序员很难理解这个代码
用字符串可选型描述
var studentInSwift: (name : String, idNUmber: String, age: Int, reward: String?)
studentInSwift = ("Tom", "13261089216", 20, nil)
// 描述中的reward 用可选类型String?,有值为字符串,无值就显示 nil
定义可选型 :
声明一个可选类型的常量或者变量的格式
let cName :Type? = value
var cName :Type? = value
声明一个变量reward 其是字符串可选类型,可以赋值,也可以不赋值,默认为 nil
var reward: String?
理解可选型 :
可以将可选类型想象一个盒子,可选型可以表示一个实际的值,也可以表示 nil,这个盒子可以装一个实际的值,也可以空着,但是无论装不装实际的值,盒子总是存在的
打开这个可选型的盒子,驱虎其中的数据,有三种方式: 强制拆包、可选类型绑定 、nil 聚合运算
第一种方式 — 强制拆包 : 用 ! 强制拆包
例子:
var reward: String?
reward = “wo shi lao shi ”
var bonus: String = “value”
bonus = reward!
print(“\(bonus)”)
注意: 强制拆包带来的问题会导致系统崩溃,被解包属性必须有数据才可以,
防止崩溃 应该这样
if reward != nil {
bonus = reward!
}
第二种方式 — 可选类型绑定 :
可选型绑定就是在 if 或者 while 的条件判断语句中,把可选类型赋给你一个常量,如果可选类型含有值,则这条赋值语句的布尔值为 true,同时该常量取得可选型中含有的值,如果可选型等于 nil ,则这条赋值语句的布尔值为 false.
格式如下:
var optionalName: String?
optionalName = "可选类型绑定"
if let constantName = optionalName {
print("可选类型绑定 == \(constantName)")
} else {
print("可选类型绑定 == kong")
}
第三种方式 — nil 聚合运算 : 用?? 为 nil 聚合运算符
从可选型中取值的方法叫作 nil 聚合运算.就是一种最简便的可选型拆包方式,
无论可选型中是否有值,都可以通过 nil 聚合运算拆包.
如果有值就取出来,如果可选型为 nil,就使用默认值代替.
格式如下:
var hobby: String?
var membership: String?
// membership = "membership"
let getHobby = hobby ?? "No hobby"
let getMembership = membership ?? "No membership"
hobby = nil
membership = nil
print("nil 聚合运算 =getHobby == \(getHobby)")
print("nil 聚合运算=getMembership == \(getMembership)")
打印结果:
nil 聚合运算 =getHobby == No hobby
nil 聚合运算=getMembership == No membership
使用 nil 聚合运算符注意点:
1.默认值的类型必须和可选型拆包后的类型一致,
2.进行 nil 聚合运算符的对象必须为可选型
二、运算符
请查看下一篇文字...
谢谢!!!
本账号主要分享我成长过程中的各种心得感悟,包括技术总结, iOS、Swift 和 Mac 相关技术文章、工具资源、参与技术讨论,整理开发技巧、让学习成为一种享受!