swift How to cast from Int? to String

前端 未结 11 1285
天命终不由人
天命终不由人 2021-02-03 20:42

In Swift, i cant cast Int to String by:

var iString:Int = 100
var strString = String(iString)

But my variable in Int? , there for error:

11条回答
  •  日久生厌
    2021-02-03 21:16

    If you need a one-liner it can be achieved by:

    let x: Int? = 10
    x.flatMap { String($0) } // produces "10"
    let y: Int? = nil
    y.flatMap { String($0) } // produces nil
    

    if you need a default value, you can simply go with

    (y.flatMap { String($0) }) ?? ""
    

    EDIT:

    Even better without curly brackets:

    y.flatMap(String.init)
    

    Apple's flatMap(_:) Documentation

提交回复
热议问题