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)
// boilingPointOfWater.temperatureInCelsius is 100.0
let freezingPointOfWater = Celsius(fromKelvin: 273.15)
// freezingPointOfWater.temperatureInCelsius is 0.0
我对为什么init函数有(fromFahrenheit fahrenheit: Double)和(fromKelvin kelvin: Double)感到困惑。文档说:
"第一个初始化器有一个名为from Fahrenheit的外部名称和一个名为fahrenheit的本地名称。第二个初始化器有一个名为from Kelvin的外部名称和一个名为kelvin的本地名称。"
为什么我们需要这么多名称呢?