2017-07-30 46 views
1

我想知道最好的方式添加到斯威夫特4. String沒有蘋果創造出比stringName.characters.append(「hi」)在斯威夫特添加到字符串4

編輯一個更好的方法:下文指出,我從來不知道你以前可以使用String.append()。我試圖弄清楚在Swift 4中你不必再使用.characters。我試圖通過提出一個問題來幫助新來的人迅速提出問題,以便他們可以通過在String變量之後不使用.characters來節省時間。我不知道,因爲我是StackOverflow的新手,這個網站是關於代表而不是幫助人們。

+4

它總是可以使用'string.append(anotherString)' – Palle

回答

3

您可以直接在String實例調用append(_:)

var stringName = "" 
stringName.append("hi") 
print(stringName) // hi 
stringName.append(" John") 
print(stringName) // hi John 

同樣,你可以使用+= operator of String的級聯

var stringName = "" 
stringName += "hi" 
print(stringName) // hi 
stringName += " John" 
print(stringName) // hi John 

對於好奇的一個,兩者的實現這些方法使用相同的後端(/核心)append(...)調用。引述swift/stdlib/public/core/String.swift

extension String { 

    // ... 

    public mutating func append(_ other: String) { 
    _core.append(other._core) 
    } 

    // ... 
} 

extension String { 

    // ... 

    public static func += (lhs: inout String, rhs: String) { 
    if lhs.isEmpty { 
     lhs = rhs 
    } 
    else { 
     lhs._core.append(rhs._core) 
    } 
    } 

    // ... 
} 
+0

真棒感謝。我知道答案(我在WWDC),但試圖讓我的代表回答問題和東西。並想出有人會問。 –

+2

@the_kaseys如果你有一個問題,你已經知道了答案,並且相信這可能是一個有價值的問答(對於其他訪問者來說可能是一個有價值的問答)(可能不是那些已經被語言引用覆蓋的小問題),你可能會問並回答你自己的問題](https://stackoverflow.com/help/self-answer)。回答他人的問題是非常普遍的,也可以作爲回答者的良好習慣(我在編寫我的答案的過程中學到了很多東西)。 – dfri

+0

Oh dang my bad。我很感激你讓我知道!我剛剛開始與SO。 –

0

根據夫特4文檔, 字符串值可以與加法運算符(+)一起加入(或連續)來創建新的字符串值:

let string1 = "hello" 
let string2 = " there" 
var welcome = string1 + string2 
// welcome now equals "hello there" 

您還可以使用加法賦值運算符(+ =)將字符串值附加到現有字符串變量:

var instruction = "look over" 
instruction += string2 
// instruction now equals "look over there" 

您可以將字符值附加到與String類型的追加一個字符串變量()方法:

let exclamationMark: Character = "!" 
welcome.append(exclamationMark) 
// welcome now equals "hello there!"