Note 9 swift中的杂项

2016-07-25  本文已影响7人  cry_0416

元组

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

上一篇 下一篇

猜你喜欢

热点阅读