在Swift中,我无法通过以下方式将Int转换为String:
var iString:Int = 100
var strString = String(iString)
Run Code Online (Sandbox Code Playgroud)
但我在Int中的变量?,有错误:Cant invoke 'init' with type '@Ivalue Int?'
例
let myString : String = "42"
let x : Int? = myString.toInt()
if (x != null) {
// Successfully converted String to Int
//And how do can i convert x to string???
}
Run Code Online (Sandbox Code Playgroud)
rak*_*hbs 41
您可以使用字符串插值.
let x = 100
let str = "\(x)"
Run Code Online (Sandbox Code Playgroud)
如果x
是可选的,你可以使用optional binding
var str = ""
if let v = x {
str = "\(v)"
}
println(str)
Run Code Online (Sandbox Code Playgroud)
如果你确定x
永远不会nil
,你可以做forced unwrapping
一个optional value
.
var str = "\(x!)"
Run Code Online (Sandbox Code Playgroud)
在一个声明中,您可以尝试这一点
let str = x != nil ? "\(x!)" : ""
Run Code Online (Sandbox Code Playgroud)
基于@ RealMae的评论,您可以使用以下内容进一步缩短此代码 nil coalescing operator (??)
let str = x ?? ""
Run Code Online (Sandbox Code Playgroud)
Ant*_*ine 19
我喜欢为此创建小扩展:
extension Int {
var stringValue:String {
return "\(self)"
}
}
Run Code Online (Sandbox Code Playgroud)
这使得调用可选的int成为可能,而不必解开和考虑nil值:
var string = optionalInt?.stringValue
Run Code Online (Sandbox Code Playgroud)
小智 11
如果您需要单线,可以通过以下方式实现:
let x: Int? = 10
x.flatMap { String($0) } // produces "10"
let y: Int? = nil
y.flatMap { String($0) } // produces nil
Run Code Online (Sandbox Code Playgroud)
如果你需要一个默认值,你可以简单地使用
(y.flatMap { String($0) }) ?? ""
Run Code Online (Sandbox Code Playgroud)
编辑:
没有花括号更好:
y.flatMap(String.init)
Run Code Online (Sandbox Code Playgroud)
可选整数 -> 可选字符串:
如果x: Int?
(或Double?
- 无关紧要)
var s = x.map({String($0)})
Run Code Online (Sandbox Code Playgroud)
这将返回 String?
要获得一个String
你可以使用:
var t = s ?? ""
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
32460 次 |
最近记录: |