我尝试使用Swift创建一个.toString方法扩展名,只是为了好玩。如果我指定Int或Double等,它可以正常工作。它与NSNumber一起开箱即用,因为它本身就是一个对象,对吗?有没有办法赶上所有人?英特尔浮动双打等?某种基数类?
我看到了其他答案,但我不想创建自定义类型/协议,只需将其插入任何数字'。 Generic type constraint for numerical type only
extension Int {
func toString () -> String {
return String (self)
}
}
答案 0 :(得分:6)
您无需重新发明轮子。您可以对description
,Double
和Int
使用Swift原生NSNumber
属性:
Int(1).description // "1"
Double(2.0).description // "2.0"
NSNumber(double: 3.0).doubleValue.description // "3.0"
答案 1 :(得分:0)
let x : Int = 33
let stringValue = "\(x)"
或
let stringValue = String(x)
或
let stringValue = Int(x).description