作者: 天城一哥 | 来源:发表于2016-07-25 18:16 被阅读22次

    1.Tuple:元组
    与数组类似,但是是圆括号()
    元组里面类型可能不相同,如:
    var t1:(Int,Int,Double) = (2,4,6.5)
    print(t1)
    2.元组通过点号加位置获取数据
    通过元组可以返回多个值,如:(a,b,c)
    元组个数不可更改
    元组类型由元素类型决定

    3.数组:dynamicType 显示类型
    4.AnyObject 只能调用class类型
    5.函数名去掉就是闭包
    6.泛型:为了解决类型未定
    push:放入
    pop:取出

    class Stack<T> {
    var container = T
    func push(a:T) {
    container.append(a)
    }
    func pop() -> T {
    return container.removeLast()
    }
    }

    let m = Stack<Int>()

    m.push(24)
    m.push(36)

    print(m.pop())
    print(m.pop()) //36 24

    7.泛型函数/模板函数
    func printM<A> (a:A){
    print(a)
    }

    printM(1.2)
    printM("明天")
    8.lazy:
    懒加载,只有在使用的时候才加载或者初始化,即第一次使用才加载,接下来再去调用,不在执行初始化,只执行返回值,注意后面有个(),莫忘
    class Animal {
    lazy var name:String = {
    print("正准备吃饭")
    return "天真热"

    }()
    

    }
    let ll = Animal()
    print(ll.name)
    print(ll.name)
    //正准备吃饭
    天真热
    天真热
    9.defer:
    延时执行,跟栈类似,先进后出
    func delayCall(){
    var m1 = 10
    defer{
    print("AAA",m1)

    // if m1 != 0 {
    // fatalError()
    // }
    }
    m1 = 20
    defer{
    print("BBB",m1)

    }
    m1 = 30 //相当于最后给m1赋值为30,然后再执行两个defer函数
    print("A",m1)
    print("B",m1)
    

    }

    delayCall()
    //A 30
    B 30
    BBB 30
    AAA 30

    10.Any,AnyObject:
    Any:任意类型,包括struct,class
    AnyObject:任意对象类型,只包括class

    11.final:修饰方法,不能在子类中被重写
    class A {
    final func eat() {

    }
    

    }

    class B:A {
    override func eat() {

    }
    

    }

    注意:会报错,去掉final即可

    12.@autoclosure:自动将表达式封装成闭包
    func guess(@autoclosure m:() -> Bool) {
    if m() {
    print("true")
    }
    else{
    print("false")
    }
    }

    guess(10 > 9)
    //true
    13.inout:通过参数返回函数中的值
    func swapAB(inout w:Int,inout r:Int) {
    (w,r) = (r,w)
    }

    swapAB(&w, r: &r)

    print(w,r)

    14.泛型(Genercis):
    用类型占位符来增加代码的重用性。
    分为泛型函数与泛型类。
    func printM<A> (a:A){
    print(a)
    }

    printM(1.2)
    printM("明天")

    相关文章

      网友评论

          本文标题:

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