Swift基础-02

作者: 思考的快与慢 | 来源:发表于2017-05-07 17:53 被阅读13次
    1.Swift中switch基本用法
       /// 1.switch 可以对任意类型的值进行分支,不在局限于整数
       /// 2.switdh 一般不需要break
       /// 3. switch 如果需要多值,使用“ ,”
       /// 4.所有的分支至少需要一条指令,如果什么都不干,才使用break结束 
    
       func demo(num: String)  {
           switch num {
           case "10", "9": // switch 如果需要多值,使用“ ,”
               print("优秀");
           case "8":  // 所有的分支至少需要一条指令,如果什么都不干,才使用break结束 
               break
           default:
               print("一般")
           }
       }
    

    关于 switch的特殊用法

      func demo2() {
            
            let point = CGPoint(x: 10, y: 10)
            switch point {
            case let p where p.x == 0 && p.y == 0:
               print("原点")
            case let p where p.x == 0:
                print("Y轴")
            case let p where p.y == 0:
                print("X轴")
            case let p where abs(p.x) == abs(p.y):
                print("对角线")
            default:
                print("其他")
            }
        }
    
    
    2.Swift中区间 CountableRange 和 CountableClosedRange
        func demo3() {
            
            for i in 0..<5 {
                print(i)
            }
            print("------------")
    
            for i in 0...5 {
                print(i)
            }
            print("------------")
    
            // CountableRange<Int>
            let r1 = 0..<5 // 注意这个地方的写法 0..<5 之间没有空格
            print(r1)
            
            //  CountableClosedRange<Int> 
            let r2 = 0...5 // // 注意这个地方的写法 0...5 之间没有空格
            print(r2)
        }
    
    3. String的基本使用
    • characters 的使用 ,这个方法比OC中取字符方便的多
     func demo() {
            let  str = "洋葱数学";
            for char in str.characters {
                print(char)
            }
        }
    
    • 获取长度
        // 在返回制定编码的对应的字节数量
        // UTF-8的编码,每个汉字对应3个字节
        func demo3() {
            
            let str = "洋葱数学hello"
            print(str.lengthOfBytes(using: .utf8)) // 17
            
            // 字符串长度
            // 这种写法是推荐使用的
            print(str.characters.count) // 9
            
            // 使用NSString中转
           //  str as NSString
            let ocStr = str as NSString
            print(ocStr.length) // 9
        }
    
    • 字符串的拼接
        func demo4() {
            let name = "老王";
            let age = 18
            let title: String? = "CEO"
            let point = CGPoint(x: 100, y: 100)
            
            let str = "\(name) \(age) \(title ?? "") \(point)"
            
            print(name + String(age) + (title ?? ""))
            print(str)
        }
    
    • 字符串的格式化
        func demo5() {
            let h = 8;
            let m = 10;
            let s  = 20;
            
            let dateStr = "\(h):\(m):\(s)"
            print(dateStr)
            
            // 格式化字符串
            let dateStr2 = String(format:"%02d:%2d:%2d", h,m,s);
            print(dateStr2)
        }
    
    • String取子串以及切割
     func demo6() {
            
            // 取子串 建议使用 NSString作为中转,因为Swift去子串的方法一直在优化
            // 很容易理解
            let str = "洋葱数学"
            let ocStr = str as NSString
            let str1 = ocStr.substring(with: NSMakeRange(2, 2))
            print(str1)
            
            // String的方法
            // let r = 0..<5
            // str.substring(with: <#T##Range<String.Index>#>)
            // str.startIndex == 0
            print(str.startIndex); // Index(_base: Swift.String.UnicodeScalarView.Index(_position: 0), _countUTF16: 1)
            
            // str.endIndex == 4
            print(str.endIndex); // Index(_base: Swift.String.UnicodeScalarView.Index(_position: 4), _countUTF16: 0)
            
            let str2 = str.substring(from: "样".endIndex); // 表示从第一个位置开始获取
            print(str2) // 葱数学
            
            let str3 = str.substring(from: "样洋葱".endIndex); // 表示从第三个位置开始获取
            print(str3) // 学
            
            print("-------------")
            guard let range = str.range(of: "数学") else {
                print("没有找到子串")
                return
            }
            print(range) // Index(_base: Swift.String.UnicodeScalarView.Index(_position: 2), _countUTF16: 1)..<Index(_base: Swift.String.UnicodeScalarView.Index(_position: 4), _countUTF16: 0)
            print(str.substring(with: range)) //数学
        }
    

    相关文章

      网友评论

        本文标题:Swift基础-02

        本文链接:https://www.haomeiwen.com/subject/thtptxtx.html