2017-07-30 48 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!"