我想将一组用户转换为他们名字的字符串。
例如:
class User {
var name: String
init(name: String) {
self.name = name
}
}
let users = [
User(name: "John Smith"),
User(name: "Jane Doe"),
User(name: "Joe Bloggs")
]
这是获取String
:"John Smith, Jane Doe, Joe Bloggs"
的好方法吗?
let usersNames = users.map({ $0.name }).joinWithSeparator(", ")
如果我想让最后一个逗号成为&符号怎么办?有没有快速的方法,或者我需要编写自己的方法?
答案 0 :(得分:-1)
您可以使用reduce
:
users.reduce("", combine: { ($0.isEmpty ? "" : $0 + ", ") + $1.name })
试试这个:
func usersNames() -> String {
var usersNames = users[0].name
if users.count > 1 {
for index in 1..<users.count {
let separator = index < users.count-1 ? ", " : " & "
usersNames += separator + users[index].name
}
}
return usersNames
}