标签:
let
定义常量,一经赋值不允许再修改var
定义变量,赋值之后仍然可以修改//: # 常量
//: 定义常量并且直接设置数值
let x = 20
//: 常量数值一经设置,不能修改,以下代码会报错
// x = 30
//: 使用 `: 类型`,仅仅只定义类型,而没有设置数值
let x1: Int
//: 常量有一次设置数值的机会,以下代码没有问题,因为 x1 还没有被设置数值
x1 = 30
//: 一旦设置了数值之后,则不能再次修改,以下代码会报错,因为 x1 已经被设置了数值
// x1 = 50
//: # 变量
//: 变量设置数值之后,可以继续修改数值
var y = 200
y = 300
如果要对不同类型的数据进行计算,必须要显式的转换
let x2 = 100
let y2 = 10.5
let num1 = Double(x2) + y2
let num2 = x2 + Int(y2)
Optional
是 Swift 的一大特色,也是 Swift 初学者最容易困惑的问题可选的
,表示该变量可以有一个指定类型的值,也可以是 nil
?
,表示该变量是可选的nil
//: num 可以是一个整数,也可以是 nil,注意如果为 nil,不能参与计算
let num: Int? = 10
nil
,不允许参与计算解包(unwrap)
后才能参与计算!
,可以强行解包注意:必须要确保解包后的值不是 nil,否则会报错
??
运算符??
运算符可以用于判断 变量/常量
的数值是否是 nil
,如果是则使用后面的值替代??
能够简化代码的编写let num: Int? = nil
let r1 = (num ?? 0) + 10
print(r1)
非零即真
概念true
/ false
()
可以省略{}
不能省略let num = 200
if num < 10 {
print("比 10 小")
} else if num > 100 {
print("比 100 大")
} else {
print("10 ~ 100 之间的数字")
}
三目
运算保持了和 OC 一致的风格var a = 10
var b = 20
let c = a > b ? a : b
print(c)
guard
是与 if let
相反的语法,Swift 2.0 推出的let oName: String? = "张三"
let oNum: Int? = 18
guard let name = oName else {
print("name 为空")
return
}
guard let num = oNum else {
print("num 为空")
return
}
// 代码执行至此,name & num 都是有值的
print(name)
print(num)
switch
不再局限于整数switch
可以针对任意数据类型
进行判断break
case
后面必须有可以执行的语句default
分支中case
中定义的变量仅在当前 case
中有效,而 OC 中需要使用 {}
let score = "优"
switch score {
case "优":
let name = "学生"
print(name + "80~100分")
case "良": print("70~80分")
case "中": print("60~70分")
case "差": print("不及格")
default: break
}
标签:
原文地址:http://www.cnblogs.com/like359881584/p/5771348.html