Concatenate number with string in Swift

后端 未结 6 1483
暖寄归人
暖寄归人 2020-12-14 05:57

I need to concatenate a String and Int as below:

let myVariable: Int = 8
return \"first \" + myVariable

But it do

相关标签:
6条回答
  • 2020-12-14 06:06

    If you're doing a lot of it, consider an operator to make it more readable:

    func concat<T1, T2>(a: T1, b: T2) -> String {
        return "\(a)" + "\(b)"
    }
    
    let c = concat("Horse ", "cart") // "Horse cart"
    let d = concat("Horse ", 17) // "Horse 17"
    let e = concat(19.2345, " horses") // "19.2345 horses"
    let f = concat([1, 2, 4], " horses") // "[1, 2, 4] horses"
    
    operator infix +++ {}
    @infix func +++ <T1, T2>(a: T1, b: T2) -> String {
        return concat(a, b)
    }
    
    let c1 = "Horse " +++ "cart"
    let d1 = "Horse " +++ 17
    let e1 = 19.2345 +++ " horses"
    let f1 = [1, 2, 4] +++ " horses"
    

    You can, of course, use any valid infix operator, not just +++.

    0 讨论(0)
  • 2020-12-14 06:07

    Optional keyword would appear when you have marked variable as optional with ! during declaration.

    To avoid Optional keyword in the print output, you have two options:

    1. Mark the optional variable as non-optional. For this, you will have to give default value.
    2. Use force unwrap (!) symbol, next to variable

    In your case, this would work just fine

    return "first \(myVariable!)"

    0 讨论(0)
  • 2020-12-14 06:08

    If you want to put a number inside a string, you can just use String Interpolation:

    return "first \(myVariable)"
    
    0 讨论(0)
  • 2020-12-14 06:10

    You have TWO options;

    return "first " + String(myVariable)
    

    or

    return "first \(myVariable)"
    
    0 讨论(0)
  • 2020-12-14 06:12

    Here is documentation about String and characters

    var variableString = "Horse"
    variableString += " and carriage"
    // variableString is now "Horse and carriage"
    
    0 讨论(0)
  • 2020-12-14 06:21

    To add an Int to a String you can do:

    return "first \(myVariable)"
    
    0 讨论(0)
提交回复
热议问题