// 定義一個(gè)struct public struct Thermometer { public var temperature: Double public init(temperature: Double) { self.temperature = temperature } }
// 我們初始化的時(shí)候只能像這樣初始化,不能直接用=進(jìn)行初始化
var t: Thermometer = Thermometer(temperature: 10.2)
var tt: Thermometer = 10.2 //編譯器會(huì)報(bào)錯(cuò)
// 只需要struct遵守ExpressibleByFloatLiteral協(xié)議即可使用=進(jìn)行初始化
extension Thermometer: ExpressibleByFloatLiteral {
public init(floatLiteral value: FloatLiteralType) {
self.init(temperature: value)
}
}
var tem: Thermometer = 10.2
類似的協(xié)議還有
ExpressibleByBooleanLiteral
ExpressibleByStringLiteral
等