init的目的是什么!可用的初始化程序?

Mat*_*ini 5 initialization optional ios swift

Apple Swift编程语言指南提到了init的存在!初始化程序,但没有提供任何示例.(在此页面中搜索init!)

我理解使用用init?声明的普通可用初始化程序,但是我没有得到这个其他版本的需要.需要什么?有人可以提供一个例子吗?

小智 -3

init 初始值设定项与其他语言中类的构造函数相同。它设置初始值并执行一些初始操作(例如检查值是否太大等)。有趣的是:它也需要参数并且可以重载。

例子:

struct Celsius {
    var temperatureInCelsius: Double
    init(fromFahrenheit fahrenheit: Double) {
        temperatureInCelsius = (fahrenheit - 32.0) / 1.8
    }
    init(fromKelvin kelvin: Double) {
        temperatureInCelsius = kelvin - 273.15
    }
}
let boilingPointOfWater = Celsius(fromFahrenheit: 212.0)
let freezingPointOfWater = Celsius(fromKelvin: 273.15)
Run Code Online (Sandbox Code Playgroud)

因此,当您调用该结构时,它会根据您的调用参数返回不同的值。

欲了解更多信息:http://www.informit.com/articles/article.aspx?p =2246797