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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile丽语阅读 3,870评论 0 6
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 3,926评论 1 10
  • 123.继承 一个类可以从另外一个类继承方法,属性和其他特征。当一个类继承另外一个类时, 继承类叫子类, 被继承的...
    无沣阅读 1,450评论 2 4
  • 昨天,我们去中国喜剧院看戏,我们看了《威尼斯商人》,是莎士比亚写的原剧本,看完我才真正佩服他了。 ...
    simba08阅读 1,087评论 1 2
  • 生活从来就是一道选择题,无数的选择让你有了一生 可有时他连选择的余地都没有,你只能接受 并不是所有的努力都会有结果...
    爱吃香蕉的橘子小姐阅读 284评论 0 0