您的位置:首页 >> APPLE >> 和屌丝一起学SWIFT-方法
和屌丝一起学SWIFT-方法
[ 孤狼 | 2016-04-26 20:36:07 | APPLE ]

声  明

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


Hello,欢迎回到和屌丝一起学SWIFT系列教程中来,上节我们说了属性,这节我们来一起学习另一个和类相关的东西-方法.这节与上节都属于类的功能扩展,所以也很重要,Let's go

 

 

 

方法


方法,简单的来说,就是一个类或一个结构体里面的函数,这个函数就是这个类或这个结构体的一个方法.这里与OC不同的是,SWIFT,,结构体,枚举都可以定义方法.

 

 

[实例方法]

实例方法就是类或结构体或枚举内定义的一个具有一定功能的函数.定义的方法和函数一致,使用关键字 func 来定义,只不过要在类或结构体内部定义.

class A{
    var num=0;
    func zou() {
        num += 1;
    }
    func out(){
        print(num);
    }
}
var a=A();
a.zou();
a.zou();
a.out();
//输出 "2";

 

[self]

在方法中,我们获取本实例中的变量的时候,可以在变量前加上关键字 self 来确定使用本实例的变量,一般情况不需要添加便默认使用本身实例的变量,但是如果参数与本实例中的变量重名,就需要使用 self 来区别.

class B{
    var num=0;
    func b1(num:Int){
        if(num>self.num){
            print("大了");
        }
    }
}
var b=B();
b.b1(2);
//输出"大了"

 

 

[mutating]

在结构体及枚举类型中,实例中的属性不能直接修改,我们需要用变异关键字 mutating 来修饰方法

struct C{
    var num=0;
    mutating func c1(){
        print(num);
    }
}
var c=C();
c.c1();
//输出"0"

 

TIP:不论是类,结构体还是枚举,方法中修改常量均是无效的哦.

 

 

[类型方法]

顾名思义,这个方法不再是实例使用的,而是类本生使用的,一些情况下,我们可能会直接更新类来处理一些事情.定义类型方法,我们使用关键字 static.

struct D{
    static var dnum=0;
    var outnum=dnum;
    static func d1(num:Int){
        self.dnum=num;
    }
}
var d1=D();
print(d1.outnum);   //输出"0"
D.d1(10);           //调用类型方法,这个类被改变
var d2=D();
print(d2.outnum);   //输出"10"

 

本节代码下载

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