Swift构造函数(Initializer)和析构函数(Deinitializer)

要初始化结构和类和其他类型的实例的属性。

默认的构造函数

struct Fahrenheit {
var temperature: Doubleinit(){
temperature = 32.0
}
}

var f = Fahrenheit() //调用默认构造器 init() ,没有參数 没有返回值。

println("The default temperature   is \(f.temperature)°Fahrenheit")
// prints "The default temperature is 32.0° Fahrenheit"

自己定义构造器

定义类两个构造器:init(fromFahrenheit:)  和init(fromKelvin:)

struct Celsius {
var temperatureInCelsius: Double = 0.0
init(fromFahrenheit fahrenheit: Double) {
temperatureInCelsius = (fahrenheit - 32.0)
/ 1.8
}
init(fromKelvin kelvin: Double) {
temperatureInCelsius = kelvin -273.15
}
}
let boilingPointOfWater = Celsius(fromFahrenheit:212.0)
// boilingPointOfWater.temperatureInCelsius is 100.0
let freezingPointOfWater =Celsius(fromKelvin:273.15)
// freezingPointOfWater.temperatureInCelsius is 0.0

析构器(Deinitializer)

析构器与构造器相反,在对象释放时候调用。 使用keyword deinit,语法例如以下:

deinit {
// perform thedeinitialization
}

实例:

class Player {
var coinsInPurse:Int init(coins: Int) {
println("call init")
coinsInPurse= coins
}
func winCoins(coins: Int) {
coinsInPurse+= 10
}
deinit {
coinsInPurse = 0
}
}
var playerOne: Player? = Player(coins: 100)
println("coinsInPurse : \(playerOne!.coinsInPurse)
coins")
playerOne = nil
println("PlayerOne has leftthe game")

Swift交流讨论论坛论坛:Swift构造函数(Initializer)和析构函数(Deinitializer)http://www.cocoagame.net

欢迎增加Swift技术交流群:362298485

版权声明:本文博客原创文章,博客,未经同意,不得转载。

上一篇:Android 第二次作业


下一篇:head first python_1