Swift 3从Int到String的转换
在Swift 3中,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类型,一个
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")"