假设出于学术目的,我更喜欢这样的表达
someInt.asDouble
而不是股票
Double(someInt)
由于所有各种 Swift 整数类型都符合IntegerType
协议并且因为似乎有一个Double()
初始化器适合所有类型的 int 类型,所以我想我可以这样:
extension IntegerType {
var asDouble:Double {
return Double(self)
}
}
这不起作用。我想知道为什么?我想知道是否有一些魔法可以使它起作用?一个where
也许?还是与self
参考有关?
我在此尝试的操场控制台中遇到的错误如下:
Playground execution failed: /var/folders/2k/6y8rslzn1m95gjpg534j7v8jzr03tz/T/./lldb/41416/playground37.swift:31:10: error: cannot invoke initializer for type 'Double' with an argument list of type '(Self)'
return Double(self)
^
/var/folders/2k/6y8rslzn1m95gjpg534j7v8jzr03tz/T/./lldb/41416/playground37.swift:31:10: note: overloads for 'Double' exist with these partially matching parameter lists: (Double), (UInt8), (Int8), (UInt16), (Int16), (UInt32), (Int32), (UInt64), (Int64), (UInt), (Int), (Float), (Float80), (String), (CGFloat), (NSNumber)
return Double(self)