- // MARK:-----------------数组与for循环---------------------
- /*
- ..< 运算符是一个非包函范围运算符,不包括上限值。还有一个运算符 ... 它具有包容性。
- 数组通过 count 属性来计算数组中的项目总数。也可以查找数组中特定项,通过语法 arrayName[index] 定义,如在这里看到。
- */
- // 闭区间运算符
- for i in 0...5 {
- print(i)
- }
- // 半闭区间 (包前 不包后)
- for i in 5..<7 {
- print(i)
- }
- // 反序遍历
- for i in (0...10).reversed() {
- print(i)
- }
- // MARK:--------------------数值字面量----------------------------
- /*
- 一个十进制数,没有前缀
- 一个二进制数,前缀是0b
- 一个八进制数,前缀是0o
- 一个十六进制数,前缀是0x
- */
- let decimalInteger = 17
- let binaryInteger = 0b10001 // 二进制的17
- let octalInteger = 0o21 // 八进制的17
- let hexadecimalInteger = 0x11 // 十六进制的17
- // MARK:-------------逻辑运算符-------
- // 与OC一样处理
- /*
- 逻辑非(!a)
- 逻辑与(a && b)
- 逻辑或(a || b)
- */
- // MARK:----------------if 语句和字符串插值--------------
- /*
- 这是一个if语句的一个例子,就像在其它的编程语言一样。条件的括号是可选的,大括号是必需的,即使只有1行语句。
- 这里说明一个叫做字符串内插的新的技术的一个例子。在Swift中每当想要替换字符串中东西,只需使用此语法:\(表达式)。
- */
- if name == 1 {
- print("正确")
- }
- // MARK: - if let / var (连用语法,目的就是判断值)
- func demo () {
- // 定义可选值
- let oName: String? = "老王"
- let oAge: Int? = 10
- // 需要解包
- if oName != nil && oAge != nil{
- print(oName! + String(oAge!))
- }
- // if let 连用 就是用来判断对象的值是否为nill,不是单纯的判断
- if let name = oName,let age = oAge{
- // 进入分支一定有值,并且一定不需要解包
- print(name + String(age))
- }
- }
- //MARK: - guard let/ var (守卫守护)
- func demo1() {
- // 定义可选值
- let oName: String? = "隔壁"
- let oAge: Int? = nil
- // 判断条件不满足 执行else{}
- guard let name = oName,let age = oAge else {
- print("name 或者 age 为空")
- return
- }
- // 执行到这 就保证一定有值了
- print(name + String(age))
- }
- //MARK: - Switch使用
- /**
- 1,OC中 Switch 分支要求必须是整数,而 swift中 可以是任意类型
- 2,swift 中 Switch一般不需要 break
- 3,swtch 如果要多值,使用,隔开
- 4,所有的分支至少需要一条指令,如果什么都不执行,才使用break
- */
- func demo3(num: NSString) {
- switch num {
- case "10","8":
- print("我是字符串")
- default:
- print("哈哈")
- }
- }
- // MARK:- 调用
- override func viewDidLoad() {
- super.viewDidLoad()
- demo()
- demo1()
- }