swift学习随笔 Day3

作者: RadioHeadache | 来源:发表于2017-03-02 00:57 被阅读31次

    switch语句

    /*
     1. 值可以是任何类型
     2. 作用域仅在case内部
     3. 不需要break
     */
    
    let name = "老王"
    
    switch name {
    case "老王":
        let age = 80
        print("hi")
    
    case "老李": break
    
    //case里面没有代码的时候,需要用需要有break
        
    default:
        print("other")
    }
    

    字符串

    与OC对比

    OC里面string是NSString,继承自NSObject,是对象。而swift中的String是结构体。

    支持遍历

    var str: String = "你好世界"
    
    for  c in str.characters {
        print(c)
    }
    
    //consle输出的结果为
    /*
    你
    好
    世
    界
    */
    

    NSString不支持遍历

    字符串的拼接

    //字符串的拼接
    let name = "老王"
    let age = 80
    let title = "小黑"
    
    print(name + String(age) + title)
    print("\(name)\(age)\(title)")
    

    字符串的格式

    swift里没有类似oc的stringWithFormat,但是有其他替代的语法。

    let h = 9
    let m = 5
    let s = 8
    
    let timeStr = "\(h):\(m):\(s)"//没有格式
    //输出为 "9:5:8"
    
    let timeStrWithFormat = String(format: "%02d:%02d:%02d", arguments: [h, m, s])//有格式
    //输出为 "09:05:08"
    

    Range的变化

    在swift中,Range的变化很大,如果要用OC中的subStringWithRange(NSMakeRange(range, NSRange),取出string中的某些字,要把String改成NSString

    (str as NSString).substring(with: NSMakeRange(2, 2))
    //转换成NSString再使用NSMakeRange方法
    
    str.substring(with: Range<String.Index>)
    

    常量和变量

    开发的时候,首选let,不得不修改的时候才使用var

    循环

    旧的写法

    这种写法在最新版本的额xcode里面会报错,并被fix成下面提到的开区间的写法

    for var i = 0; i < 10; i++ {
        print(i)
    } 
    

    开区间

    //从0到9
    for i in 0 ..< 10 {
        print(i)
    }
    
    /*
        输出结果为:
        0
        1
        2
        3
        4
        5
        6
        7
        8
        9
    */
    

    闭区间

    //从0到10
    for i in 0...10 {
        print(i)
    }
    
    /*
        输出结果为:
        0
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
    */
    

    相关文章

      网友评论

        本文标题:swift学习随笔 Day3

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