01-第一个Swift小程序
// 打印一行文字
println("Hello Swift") // Hello Swift
02-常量与变量
// 常量:一旦设定不允许更改
let maxLoginAttempts = 5
// 变量:设定后仍可根据需要修改
var currentLoginAttempt = 0
currentLoginAttempt = 3
// 在一行定义多个常量,建议常量的名称使用大写字母
let PI = 3.14, SPEEDOFLIGHT = 300_000
// 在一行定义多个变量
var x = 1.0, y = 2.0, z = 3.0
// 指定常量(变量)的类型
let num : Int = 8
// 常量(变量)的名称支持中文
let 最大允许尝试登录次数 = 5
// 打印常量(变量)的值
println(最大允许尝试登录次数) // 5
// 字符串插值
println("最大允许尝试登录次数为\(最大允许尝试登录次数)次") // 最大允许尝试登录次数为5次
03-整数类型
// 整数类型建议使用int类型
// int类型的极值
let minValue = Int.min
let maxValue = Int.max
04-浮点数类型
// 浮点数类型推荐使用double类型
// float类型与double类型的精度比较
let num1 : Float = 0.123456789012345
let num2 : Double = 0.123456789012345
05-类型推断
// 类型推断:根据初值推断类型
// int类型
let num1 = 6
// double类型
let num2 = 3.14
// double类型
let num3 = 3 + 0.14
06-数值型字面量
// 各种进制的表示方法
let 十进制的10 = 10
let 二进制的2 = 0b10
let 八进制的8 = 0o10
let 十六进制的16 = 0x10
// 使用科学计数法时,类型推断为double类型
let 一百万 = 1e6
let 一百万分之一 = 1e-6
let 十六进制的15以2为底的3次方 = 0xFp3
// 数值型字面量的格式化
let 十亿元 = 1_000_000_000
let 五块钱 = 0_000_000_005
07-数值类型转换与类型别名
let num1 = 3
let num2 = 0.14
// double类型与int类型进行运算时,需要将int类型 -> double类型
let PI = Double(num1) + num2
// double类型 -> int类型:直接截取整数部分
let PI整数部分 = Int(PI)
// 类型别名
typealias 整数类型 = Int
let maxValue : 整数类型 = 整数类型.max
08-布尔类型
// 布尔类型只有两种取值:true与false
let 橘子是橙色的 = true
let 萝卜好吃 = false
if (萝卜好吃) {
println("萝卜好吃")
} else {
println("萝卜不好吃") // 萝卜不好吃
}
// 在C语言中,任何非0的数都可以代表true,0代表false,但在Swift语言中不允许这样表示
let num = 2
if (num == 2) {
println("num等于2") // num等于2
} else {
println("num不等于2")
}
09-元组类型
// 元组类型:临时将几种类型组合到一起,并不建议长久使用
let 衬衫 = (价格 : 70, 颜色 : "黑色", 合身 :true)
if (衬衫.合身) {
println("\(衬衫.颜色)的衬衫很合身,价格为\(衬衫.价格)元") // 黑色的衬衫很合身,价格为70元
} else {
println("衬衫不合身")
}
10-Optional类型的拆包与绑定
let 彩票 = "5000000"
// Optional类型
let 中奖金额 = 彩票.toInt()
// 拆包:访问Optional类型的值,如果Optional类型的值为nil会出错,所以必须进行判断
if (中奖金额 != nil) {
println("恭喜你,中奖\(中奖金额!)元") // 恭喜你,中奖5000000元
} else {
println("没中奖")
}
// 绑定:在拆包时将值保存
if var 临时金额 = 中奖金额 {
var 税后金额 = Double(临时金额) * 0.8
println("恭喜你,中奖\(中奖金额!)元, 税后\(税后金额)元") // 恭喜你,中奖5000000元,税后4000000元
} else {
println("没中奖")
}
11-Optional类型的间接拆包
let 彩票 : String? = "5"
println("恭喜你,中奖\(彩票!)元") // 恭喜你,中奖5元
// 间接拆包:当Optional类型一定有值时可以使用间接拆包
let 百分百中奖彩票 : String! = "5"
println("恭喜你,中奖\(百分百中奖彩票)元") // 恭喜你,中奖5元
if let 临时金额 = 百分百中奖彩票 {
println("恭喜你,中奖\(临时金额)元") // 恭喜你,中奖5元
} else {
println("没中奖")
}
12-断言
// 断言:只有达到底线条件程序才能运行,用于调试
var 年龄 = 19
assert(年龄 > 18, "必须年满18岁才能使用该程序")