美文网首页
Note 9 swift中的杂项

Note 9 swift中的杂项

作者: cry_0416 | 来源:发表于2016-07-25 17:00 被阅读7次

    元组

    var tuple1 = (1, 2, 3)

    • 可以通过索引获取元素
    var fir = tuple1.0 // fir = 1
    
    • 可以对元素命名
    var tuple1 = (first:1, second:2, third:3)
    
    • 元素个数不可以更改
    • 元祖的类型由它的元素类型决定
    var tuple2 = (1,"2",3)//(Int,String,Int)
    

    用途

    1. 同时给多个变量赋值
    2. 同时返回多个值,返回的值也可以命名

    defer

    func defer1()  {
        defer{
            print("order1")
        }
        defer{
            print("order0")
        }
        print("this will print first")
    }
    
    defer1()
    //输出
    //this will print first
    //order0
    //order1
    
    

    final

    修饰方法,表示父方法在子类里面不能被重写

    autoclosure

    func test(@autoclosure c: () -> Bool){
        if c() == false {
            print("false")
        }else {
            print("true")
        }
    }
    test(2>1)
    
    func test1(@autoclosure c: () -> Int){
        if c() > 0 {
            print("c() > 0 ")
        }else{
            print("c() < 0")
        }
    }
    test1(2-1)//
    

    lazy

    class testLazy{
        var testname :String = {
            print("我只会执行一次,下次用就不会出现")
            return "hello"
        }()
        
        func priInfo() {
            print(testname)
        }
    }
    
    let l1 = testLazy()//print我只会执行一次,下次用就不会出现
    l1.priInfo()//print hello
    
    
    //lazy1.在第一次使用的时候才会执行
    //2.只会执行一次
    
    

    泛型函数/模板函数,泛型类

    1. 泛型函数
    func printOne<T> (a:T){
        print(a)
    
    }////< >里面是类型占位符,可以是任意描述
    
    func printOne<anyWords> (a:anyWords){
        print(a)
    
    }////< >里面是类型占位符,可以是任意描述
    
    

    2.泛型类

    class hello <T> {
        var num: T!
        func priInfo(){
            print(num)
        }
    }
    

    Final

    • 修饰方法,表示不能在子类中覆盖重写

    相关文章

      网友评论

          本文标题:Note 9 swift中的杂项

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