func demo() {
let x = 10
/**
* 没有()
* 必须要有{}:在很多公司的开发规范中,都是禁止不实用花括号的
* 条件判断,C语言中,非零即真,在Swift中只有true和false
*/
if x > 20 {
print("大")
}else {
print("小")
}
}
// 在swift中三目运算符会用到很多
// if语句一不小心就会写得丑爆了
func demo1() {
let a = 10
a > 5 ? print("哈哈") : print("呵呵")
}
func demo2() {
// 冒号来指定变量类型
let oName: String? = "张三"
let oAge: Int? = 20
if oName != nil && oAge != nil {
print("Mr." + oName! + "--" + String(oAge!))
}
// if let 可以设置数值,进入分支后,name可以保证一定有值
if let name = oName {
print("Hi~" + name)
}
// 多值的设置,使用逗号分隔
// 注意:if let语句中不能使用&& || 条件
// if let中只要有任何一个条件为nil,就跳出循环
if let name = oName, age = oAge {
print("Hi~" + name + "年龄:" + String(age))
}
}
func demo3() {
let oName: String? = "张三"
let oAge: Int? = 20
guard let name = oName else {
print("name 为 nil")
return
}
guard let age = oAge else {
print("age 为 nil")
return
}
// 代码执行到此,name 和 age 一定有值
// 在实际开发中,复杂的代码在条件判断之后
// 使用guard会让嵌套层次少一层
print("Hi \(name) -- \(age)");
}
// OC中,switch只能判断整数
func switchDemo() {
// 如果开发时看到error type,要立即检查或编译,否则后续没有智能提示
let number = "11"
// option + click 是开发中最重要的组合键
/**
* 不需要break
* 不在局限在对int的分支,可以对任意数据类型进行检测
* 各个case之间不会穿透,如果有多个值,使用逗号分隔
* 定义变量,不需要使用{}分隔作用域
* 在switch中,必须涵盖所有条件,每一个case至少包含一条语句,不能空
*/
switch number {
case "10","11":
let name = "老王"
print("\(name)好")
case "9":
print("良好")
default: break
// print("差")
}
}
网友评论