为Swift中的所有数字创建.toString()扩展名

时间:2015-04-21 22:25:39

标签: ios swift generics

我尝试使用Swift创建一个.toString方法扩展名,只是为了好玩。如果我指定Int或Double等,它可以正常工作。它与NSNumber一起开箱即用,因为它本身就是一个对象,对吗?有没有办法赶上所有人?英特尔浮动双打等?某种基数类?

我看到了其他答案,但我不想创建自定义类型/协议,只需将其插入任何数字'。 Generic type constraint for numerical type only

extension Int {
    func toString () -> String {
        return String (self)
    }
}

2 个答案:

答案 0 :(得分:6)

您无需重新发明轮子。您可以对descriptionDoubleInt使用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