web-dev-qa-db-ja.com

Swiftの文字列と数値を連結します

StringIntを以下のように連結する必要があります。

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

しかし、次のエラーでコンパイルされません:

二項演算子「+」は、タイプ「String」および「Int」のオペランドには適用できません

String + Intを連結する適切な方法は何ですか?

42
Begum

文字列の中に数字を入れたい場合は、単に String Interpolation を使用できます。

return "first \(myVariable)"
66
jtbandes

2つのオプションがあります。

return "first " + String(myVariable)

または

return "first \(myVariable)"
45
H. Mahida

Intを文字列に追加するには、次のようにします。

return "first \(myVariable)"
4
CW0007007

あなたがそれの多くをしているならば、それをより読みやすくするために演算子を考えてください:

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"

もちろん、+++だけでなく、任意の有効な中置演算子を使用できます。

4
Grimxn

宣言時に_!_で変数をオプションとしてマークすると、Optionalキーワードが表示されます。

印刷出力でオプションのキーワードを回避するには、2つのオプションがあります。

  1. オプション変数を非オプションとしてマークします。このためには、デフォルト値を指定する必要があります。
  2. 変数の隣に、強制的にアンラップ_(!)_シンボルを使用します

あなたの場合、これはうまくいくでしょう

return "first \(myVariable!)"

3
Sategroup

文字列と文字 に関するドキュメントがあります

var variableString = "Horse"
variableString += " and carriage"
// variableString is now "Horse and carriage"
0
Tomasz Szulc