您的位置:首页 >> APPLE >> 和屌丝一起学SWIFT-小功能
和屌丝一起学SWIFT-小功能
[ 孤狼 | 2016-04-29 15:20:07 | APPLE ]

声  明

       本教程仅用于初学SWIFT同学使用,内容由本人(孤狼)学习过程中笔记编写,本教程使用SWIFT版本为2.0。本教程内容可以自由转载,但必须同时附带本声明,或注明出处。PAEA.CN版权所有。


欢迎回到和屌丝一起学SWIFT系列教程,上节我们说了错误处理.不知道大家学会没有,这节我们来学习一下这么久以来积累的小功能.

 

 

[链式操作]

链式操作,顾名思义,就是一个连着一个操作.

class A{
    var aa:B?;
}
class B{
    var str="你好";
}
var b=B();
var a=A();
a.aa=b;
print(a.aa?.str);
//输出"你好"

上面的输出就是典型的链式操作哦.

 

 

 

 

[最后执行代码]

有些时候我们需要执行一些特定的操作,比如手动销毁,清空,释放,关闭文件等等.但是如果我们的程序过程中抛出了异常或中断了没法进行到这一步怎么办,这个时候,我们就需要最后执行代码来帮忙,我们在函数里,使用关键字 defer 来定义一段代码,这段代码会在这个函数结束的时候运行,不论是异常,还是中断还是返回.只要结束,就会运行.

class B{
    func bb(){
        var bnum=0;
        defer{
            print(bnum);
        }
        bnum += 1;
        bnum += 1;
        bnum += 1;
    }
}
var b=B();
b.bb();
//输出 "3"

上面代码我们可以看到,最后的返回数据是3,说明defer代码段是在程序运行结束之前运行的.

 

 

 

 

 

[guard]

guard的功能和if()一致,但是guard在单独使用的时候更加的便捷,一般用于函数内部判断使用.用于判断操作是否成功或为真.就像他的意思样,他守护代码的安全,所以,如果代码进入了else,就必须要终结,因此,需要抛出异常或直接return结束.

enum Error:ErrorType{
    case error1;
}
class C{
    var cnum=0;
    func cc() throws{
        guard cnum0 else{
            print("不能小于0");
            return;
        }
    }
}
var c=C();
try c.cc(); //输出"不能小于0"

 

 


本节代码下载  访问密码 nt17


转载请注明出处:http://gl.paea.cn/apple/content/2016/04/29/99.html