需要澄清在Swift中对文字使用点符号

时间:2015-08-06 23:44:09

标签: swift class-extensions computed-properties

所以我正在阅读Swift文档中的Class Extensions。我理解类扩展的目的和功能。然后,Apple提供了如何扩展现有类型的示例:

extension Double {
    var km: Double { return self * 1_000.0 }
    var m: Double { return self }
    var cm: Double { return self / 100.0 }
    var mm: Double { return self / 1_000.0 }
    var ft: Double { return self / 3.28084 }
}

let oneInch = 25.4.mm
println("One inch is \(oneInch) meters")
// prints "One inch is 0.0254 meters"

let threeFeet = 3.ft
println("Three feet is \(threeFeet) meters")
// prints "Three feet is 0.914399970739201 meters"

有人可以解释为什么以及如何在浮点字面值上使用点符号

在上面的示例中,他们在值 25.4 3 上使用点表示法来访问Double类的计算属性。 Apple没有详细说明为什么要这样做。

1 个答案:

答案 0 :(得分:3)

Swift的文字敞篷车使这成为可能:

http://nshipster.com/swift-literal-convertible/

正如伟大的马特汤普森在那篇文章的底部附注所说:

  

文字敞篷车的一个简洁特征是类型推断   即使没有变量声明也可以工作:

     

"http://nshipster.com/".host // nshipster.com