首页 > 代码库 > Swift学习笔记十一:方法
Swift学习笔记十一:方法
方法是与某些特定类型相关联的功能/函数,在Swift中,结构体和枚举能够定义方法;事实上这是Swift与C/Objective-C的主要区别之一。在Objective-C中,类是唯一能定义方法的类型。
1. 实例方法(Instance Methods)
1. 基本使用
重点:
① 方法其实是特殊的函数,所有函数的规则在方法中均适用
② 基于书写规范,方法的命名尽量要表达出这个方法的作用,以及每个参数的作用
③ 可以看到我们调用方法时,第二个参数的名称写出来了,这是因为在Swift中,默认情况下,方法的第一个参数是内部参数(方法名中以及可以明确表明第一个参数的意义),其他参数都是外部参数,调用时,需要写出参数名称(这样能明确的表示出参数的意义,利于代码阅读)。如果不想使用外部参数,可以将外部参数用”_"代替
2.在实例方法中修改值类型
构体和枚举是值类型。一般情况下,值类型的属性不能在他的实例方法中被修改。
如果你确实需要在某个具体的方法中修改结构体或者枚举的属性,你可以选择变异(mutating)这个方法
注意:
① 如果不加mutating ,编译器会报错
② 不能在结构体常量实例上调用编译方法,因为常量的属性不能被改变
1. 实例方法(Instance Methods)
1. 基本使用
顾名思义,实例方法就是实例可以调用的方法,下面让我们直接上代码吧
class Counter { var count: Int = 0 func incrementBy(amount: Int, numberOfTimes: Int) { count += amount * numberOfTimes } } let a = Counter() a.incrementBy(1,numberOfTimes:1)
重点:
① 方法其实是特殊的函数,所有函数的规则在方法中均适用
② 基于书写规范,方法的命名尽量要表达出这个方法的作用,以及每个参数的作用
③ 可以看到我们调用方法时,第二个参数的名称写出来了,这是因为在Swift中,默认情况下,方法的第一个参数是内部参数(方法名中以及可以明确表明第一个参数的意义),其他参数都是外部参数,调用时,需要写出参数名称(这样能明确的表示出参数的意义,利于代码阅读)。如果不想使用外部参数,可以将外部参数用”_"代替
class Counter { var count: Int = 0 func incrementBy(amount: Int, _ numberOfTimes: Int) { count += amount * numberOfTimes } } let a = Counter() a.incrementBy(1,1)
2.在实例方法中修改值类型
构体和枚举是值类型。一般情况下,值类型的属性不能在他的实例方法中被修改。
如果你确实需要在某个具体的方法中修改结构体或者枚举的属性,你可以选择变异(mutating)这个方法
struct Student{ var score = 0 mutating func incrementScore(a:Int){ score += a } }
注意:
① 如果不加mutating ,编译器会报错
② 不能在结构体常量实例上调用编译方法,因为常量的属性不能被改变
2. 类方法(Type Methods)
类型方法和实例方法一样用点语法调用。但是,你是在类型上调用这个方法,而不是在实例上调用。下面是如何在SomeClass类上调用类型方法的例子:
和定义类属性一样,结构体中用static关键字,类中用class关键字
struct Student{ var score = 0 static func print(){ println("student") } } class School{ var name = "NB小学" class func print(){ println("school") } } Student.print() //输出:student School.print() //输出:school
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。