在Swift 4中添加一个字符串

the*_*eys 3 string swift swift4

我想知道添加到StringSwift 4中的最佳方法.苹果创造了一种更好的方式stringName.characters.append(“hi”)

编辑:注意下面我从来不知道你曾经能够使用String.append().我试图了解在Swift 4中你不必再使用.characters了.我试图通过提出一个他们可能会问的问题来帮助新人快速4,以便他们可以通过不使用.charactersString变量来节省时间.我不知道,因为我是StackOverflow的新手,这个网站是关于代表而不是帮助别人.

dfr*_*fri 12

您可以append(_:)直接在String实例上调用:

var stringName = ""
stringName.append("hi")
print(stringName) // hi
stringName.append(" John")
print(stringName) // hi John
Run Code Online (Sandbox Code Playgroud)

同样,您可以使用+=运算符String进行连接

var stringName = ""
stringName += "hi"
print(stringName) // hi
stringName += " John"
print(stringName) // hi John
Run Code Online (Sandbox Code Playgroud)

对于好奇的方法,这两种方法的实现都使用相同的后端(/ core)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)
    }
  }

  // ...
}
Run Code Online (Sandbox Code Playgroud)

  • @the_kaseys如果你有一个问题,你已经知道了答案,并且相信这对于SO的其他访问者来说可能是一个有价值的问答(可能不是那些已经被语言参考所涵盖的微不足道的问题),你[可能会问和回答你自己的问题](https://stackoverflow.com/help/self-answer).回答其他人的问题非常普遍,对于回答者来说也是很好的做法(我在写答案的过程中学到了很多东西). (2认同)