//1、元组:把多个值组合成一个复合值
//特点:元组中的值可以放多个类型
//(1)元组的写法:
let dog = (age:5,name:"阿毛",gender:"女")
//(2)、元组的类型
//(Int,String,String,Bool,Double)
//(3)、元素分解值
let (age,name,gender) = dog
//(4)、简化写法:
let (age1,name1,_) = dog
//(5)、元组的访问:
print(dog.age)
print(dog.0)
print("这条狗的名字是:" + String(dog.age))
print("这条狗的名字是:\(dog.1)")
//2、可选类型:用于处理值缺失或不存在的情况
let number:Int? = nil
print(number ?? 3)
var Name:String?//默认为空
Name = "doudou"
if Name != nil{
print("值为空")
}else{
print("值不为空")
}
//3、可选值绑定:通过if判断确定可选值是否有值,如果有值通过绑定到新的常量或变量
if let newName = Name{
print(newName)
}else{
print("获取不到newname")
}
//4、隐式可选类型:
var Name1:String! = "dsgdf"
let newName1:String = Name1!
//5、错误处理:
func canThrowAnError() throws{
}
do {
//事务
try canThrowAnError()
//没有错误信息
}catch{
//回滚
//有错误信息
}
//二、运算符:
//1、sorry 赋值运算符 “=”
let a = 2
var b = 5
b = 20
let (m,n) = (1,2)
//和c、OC的赋值不同,swift的赋值不会返回任何值
//if m = n{
//
//}
//2、算术运算符:+ - * / % += -= *= /=
let c = (23 * 2 - 3 + 4) / 2.0
let d = 9 % 1
var e = 3
e += 4
print(c)
//3、比较运算符== 、!= > < >= <=
//===全等(恒等 )!= 判断是否引用的是同一对象的实例
if 1 > 1{
}else{
}
//4、三目运算符: (条件)表达式 ? 表达式1 : 表达式2
//作用:代码简洁
let height = 20
let isHeader = true
var rowHeight = height + (isHeader ? 50 : 20)
if isHeader{
rowHeight = height + 50
}else{
rowHeight = height + 20
}
//作业:输出两个数的最大值(使用三目运算符)
//5、空合运算符:
//写一个可选值类型:
let Cat1:String? = nil
print(Cat1 ?? "小猫咪")
let defualtColor = "red"
var NewColorName:String?
//可选值为nil,使用的是重新给定的默认值
var clolor = NewColorName ?? defualtColor
//可选值不为空,使用的是默认可选值
var newColorName:String? = "green"
clolor = newColorName ?? defualtColor
//6、区间运算符:(a...b)
for i in 1...5{
print("\(i) * 5 = \(i * 5)")
}
//作业:打印9*9乘法表
let className = ["huangjingzheng","caoyiyang","caodoudou","jiadongliang","lipengcheng","yuanlyin"]
let count = className.count
for m in 1...count {
print(className[m - 1])
}
//作业:班级学生的姓名便利,使用两种方式输出
//7、逻辑运算:逻辑与&& 逻辑或|| 逻辑非!
let isEmpty = false
if !isEmpty{
print("是真")
}
let isOpen = true
if !isEmpty && isOpen {
print("是真")
}else{
print("是jia")
}
//作业:练习逻辑或 逻辑运算符的组合 && || !
//注意:优先级问题
if isOpen && (isEmpty || isEmpty) || !isOpen{
}else{
}
//三、字符串和字符:
//1、字符串:
let string = "hello world!"
//空字符串:
var emptystr = ""
//初始化字符串:(使用初始化方法)
var emptyString = String()
//判断字符串是否为空:
if emptyString.isEmpty{
print("字符串是空的")
}
print(emptyString.isEmpty)