在Swift 3中,/etc/hosts
结构似乎没有初始值设定项String
,允许从init(_: Int)
转换为Int
。我的问题是为什么String
有效?它调用的let i = String(3)
方法或初始化程序是什么?感谢。
答案 0 :(得分:32)
对于任何想要在Swift 3中将int转换为字符串的人来说:
let text = "\(myInt)"
答案 1 :(得分:11)
它正在调用init(_:)
类的init(_:)
(或UnsignedInteger
} String
个参数。
而不是为Int
,Int64
,Int32
,Int16
,Int8
,UInt
,UInt64
定义单独的初始值设定项,UInt32
,UInt16
和UInt8
,Apple制作了两个通用初始值设定项:一个用于SignedInteger
类型,另一个用于UnsignedInteger
类型。
答案 2 :(得分:6)
对于想要在Swift 3上将可选整数转换为字符串的人
id
答案 3 :(得分: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()
}
}
例如:
let text = "\(yourInteger ??? "0")"