1、常量和变量
常量:
- 本质是指针不能再指向其他对象,但是可以通过指针获得对象后,修改对象内部的属性
- 用
let
来修饰: let 标识符名称 : 数据类型 = 数据的值 - 比如:let a : Int = 10 (定义了一个常量a,值类型是10)
变量:
- 使用
var
来修饰: var 标识符名称 : 数据类型 = 数据的值 - var b : Int = 20 (定义一个变量b,值类型是20,可以修改)
2、swift中的类型推导
- 在swift中任何一个标识符都有明确的类型,如果当我们定义一个标识符时候,直接进行赋值,那么标识符后面的数据类型可以省略。swift的类型推导,会自动根据后面的赋值类型决定前面标识符的数据类型。
- 在项目中我们可以通过按住
option
+鼠标左键来查看变量的数据类型
let a : Int = 1 // 完整的写法,a的数据类型是Int
let a1 = 1 // 通过类型推导,a1的数据类型是Int
3、swift中基本运算
- 在swift中进行数据运算,必须保证数据类型一致,否则报错(因为swift中没有隐式转换)
let b = 2
let b2 = 3
print(b+b2) // 数据类型一致,可以运算
let b3 = 4.1
print(b+b3) // 直接报错,因为数据类型不一致
4、swift中的逻辑分支
- 4-1、if分支语句
在if分支语句中,可以不加()
在swift中,if语句的判断条件必须有明确的真假(true/false)
let c = 10
//if c {
// print(c) // 错误写法:条件判断句必须true/false
//}
// 正确写法是
if c > 10 {
print(c)
}
-
4-2、三目运算符
和OC基本一样,a>b?a:b
(a>b为真,则取a,否则取值b) -
4-3、switch
-
switch后可以不用跟();
-
case后也可以不用跟break;
-
case判断中,可以判断多个值
-
如果希望case穿透的话,则可以使用关键字
fallthrough
-
swift中,switch支持多种数据类型判断:比如浮点型、字符串型
-
switch也支持区间判断:在swift中区间常见的有两种,一种是闭区间
0...10
,另一只是半开半闭区间0..<10
let d = 0
switch d {
case 0: // 省略了()
print("是数字0") //可以不用跟break
fallthrough // 加上这个关键字,则这个case有穿透效果,会打印(是数字1,2,3);去掉这个关键字,则不打印(是数字1,2,3)
case 1,2,3: // 可以跟多个判断值
print("是数字1,2,3")
case 4:
print("是数字4")
default:
print("其他")
}
// 支持浮点型
let d2 = 3.14
switch d2 {
case 3.14:
print(d2)
default:
print("other")
}
// 支持字符串型
let d3 = "+"
switch d3 {
case "+":
print("加号")
case "-":
print("减号")
case "/":
print("除号")
case "*":
print("乘号")
default:
print("other")
}
// 支持区间
let score = 88
switch score {
case 0..<60:
print("不及格")
case 60..<90:
print("良好")
case 90...100:
print("优秀")
default:
print("other")
}
- 4-4、guard的使用(⭐️⭐️⭐️)
guard不能干用,它一般出现在函数中或者循环中,它的基本语法是
guard 条件判断句 else {
// 当条件表达句是false是的时候,执行这里的代码
// 这里一般常跟 break 、continue (一般出现在循环中)
// return (一般出现在函数中)
}
func online(age : Int) {
guard age >= 18 else {
print("年龄太小,不能上网")
return
}
print("可以上网")
}
- 5、循环
常见的有for、while - for循环一般写法,(注意swift中i++这种写法,而且3.0后统一的写法是这样的)
for i in 0 ..< 10 {
}
//如果在循环中不用下标i,可以使用`_`代替
for _ in 0 ..< 10 {
}
- while: while的判断句必须有正确的真假
网友评论