用不同的最终定界符连接字符串数组

ma1*_*w28 4 arrays string ios swift

通常:如何连接一个字符串数组,以使最后一个定界符与其他定界符不同?

具体来说:iOS Messages应用程序如何构造群组对话的默认名称,即联系人姓名列表?

class User {
    var name: String

    init(name: String) {
        self.name = name
    }
}

let users = [
    User(name: "Matthew"),
    User(name: "Mark"),
    User(name: "Luke"),
    User(name: "John")
]

users.list(" & ") { $0.name } // => "Matthew, Mark, Luke & John"
Run Code Online (Sandbox Code Playgroud)

的PHP

Ruby(在Rails上)

蟒蛇

C#(Linq)

Cas*_*ser 5

使用问题中定义的类,您可以执行以下操作:

let names = users.map { $0.name }
let suffix = names.suffix(2)
let joined = (names.dropLast(suffix.count) + [suffix.joinWithSeparator(" & ")]).joinWithSeparator(", ")

print(joined)   // prints Matthew, Mark, Luke & John
Run Code Online (Sandbox Code Playgroud)