使用赋值操作符(=)进行初始化

 // 定义一个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

你可能感兴趣的:(使用赋值操作符(=)进行初始化)