对象方法
成员方法如果没有声明参数标签,那么外部调用这个方法的时候会自动生成一个和参数名字一样的标签,如果只有一个参数,编译器默认生成一个标签,所以第一个参数不用加标签
如果像C语言中调用方法不加标签名,需要前声明方法参数前加_下划线
/**
* 对象方法
*/
class Counter {
var count = 0
func increment() {
count++
}
func incrementBy(amount: Int) {
count += amount
}
func reset() {
count = 0
}
}
let counter = Counter()
counter.increment()
counter.incrementBy(5)
counter.reset()
- 结构体中成员方法默认不能修改成员属性的值,若果需要修改需要在方法前添加mutating关键字
struct Point {
var x = 3
let y = 5
mutating func changeX(newX: Int) {
self.x = newX
}
}
var point = Point()
self关键字
/**
* self表示这个对象
*/
class Car {
var price: Double
init(price: Double) {
self.price = price
}
}
类方法
/**
* 类型方法 直接用类名或者枚举 结构体名直接调用的
*/
//类前面添加class
//结构体和枚举前面添加static
class Person {
class func printName() {
print("这是个类方法")
}
}
Person.printName()