// 定义一个struct public struct Thermometer { public var temperature: Double public init(temperature: Double) { self.temperature = temperature } }
// 我们初始化的时候只能像这样初始化,不能直接用=进行初始化
var t: Thermometer = Thermometer(temperature: 10.2)
var tt: Thermometer = 10.2 //编译器会报错
// 只需要struct遵守ExpressibleByFloatLiteral协议即可使用=进行初始化
extension Thermometer: ExpressibleByFloatLiteral {
public init(floatLiteral value: FloatLiteralType) {
self.init(temperature: value)
}
}
var tem: Thermometer = 10.2
类似的协议还有
ExpressibleByBooleanLiteral
ExpressibleByStringLiteral
等