0

所以我正在阅读 Swift 文档中的类扩展。我了解类扩展的目的和功能。然后,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.43上使用点符号来访问 Double 类的计算属性。Apple 没有就为什么可以做到这一点给出详尽的解释。

4

1 回答 1

3

这可以通过 Swift 的字面量转换实现:

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

正如伟大的马特汤普森在文章底部附近指出的那样:

可转换字面量的一个巧妙特性是,即使没有变量声明,类型推断也能工作:

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

于 2015-08-06T23:52:45.067 回答