Swift 3从Int到String的转换

Swift 3从Int到String的转换,string,swift3,String,Swift3,在Swift 3中,String结构似乎没有允许从Int转换为String的初始值设定项init(:Int)。我的问题是为什么让i=String(3)工作?它调用的是什么String方法或初始值设定项?谢谢。它正在调用类的参数(或UnsignedInteger) 苹果公司没有为Int,Int64,Int32,Int16,Int8,UInt,UInt64,UInt32,UInt16,和UInt8,而定义单独的初始值设定项,而是制造了两个通用初始值设定项:一个用于SignedInteger类型,一个

在Swift 3中,
String
结构似乎没有允许从
Int
转换为
String
的初始值设定项
init(:Int)
。我的问题是为什么
让i=String(3)
工作?它调用的是什么
String
方法或初始值设定项?谢谢。

它正在调用类的参数(或
UnsignedInteger


苹果公司没有为
Int
Int64
Int32
Int16
Int8
UInt
UInt64
UInt32
UInt16
,和
UInt8
,而定义单独的初始值设定项,而是制造了两个通用初始值设定项:一个用于
SignedInteger
类型,一个用于
UnsignedInteger
类型。

对于那些只想在Swift 3中将int转换为字符串的人:

let text = "\(myInt)"

对于希望在Swift 3上将可选整数转换为字符串的用户

String(describing:YourInteger ?? 0)

我向某人看到了这个解决方案,谢谢,向那个人,我不记得是谁

infix operator ???: NilCoalescingPrecedence

public func ???<T>(optional: T?, defaultValue: @autoclosure () -> String) -> String {
    switch optional {
    case let value?: return String(describing: value)
    case nil: return defaultValue()
    }
}

你的回答没有回答这个问题,也没有同意你的评论,但这确实帮助了我寻找的东西。促使我转向描述的是Swift编译器,而不是我!不是我!你能详细说明一下如何实现这一点吗。。。请?我有UtilsView.swift,在这个库中,我有我在所有项目中使用的其他函数。一个函数是,中缀运算符??:nilcoalesingPreference公共函数??(可选:T?,defaultValue:@autoclosure()->String)->String{switch optional{case let value?:return String(description:value)case nil:return defaultValue()}}我真的不建议这样做<代码>字符串(整数)??“default”没有那么长,IMO也不认为在课程代码中引入间接层是合理的(因为不可避免地,你的阅读必须跳转才能阅读你的
实现,因为他们不知道这意味着什么)
let text = "\(yourInteger ??? "0")"