String
とInt
を以下のように連結する必要があります。
let myVariable: Int = 8
return "first " + myVariable
しかし、次のエラーでコンパイルされません:
二項演算子「+」は、タイプ「String」および「Int」のオペランドには適用できません
String + Intを連結する適切な方法は何ですか?
文字列の中に数字を入れたい場合は、単に String Interpolation を使用できます。
return "first \(myVariable)"
2つのオプションがあります。
return "first " + String(myVariable)
または
return "first \(myVariable)"
Intを文字列に追加するには、次のようにします。
return "first \(myVariable)"
あなたがそれの多くをしているならば、それをより読みやすくするために演算子を考えてください:
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"
もちろん、+++
だけでなく、任意の有効な中置演算子を使用できます。
宣言時に_!
_で変数をオプションとしてマークすると、Optional
キーワードが表示されます。
印刷出力でオプションのキーワードを回避するには、2つのオプションがあります。
(!)
_シンボルを使用しますあなたの場合、これはうまくいくでしょう
return "first \(myVariable!)"
文字列と文字 に関するドキュメントがあります
var variableString = "Horse"
variableString += " and carriage"
// variableString is now "Horse and carriage"