如何创建dump()
数组扩展名以打印出数组中的所有元素?
尝试强制转换为Printable
协议时出现构建错误:
extension Array {
func dump() -> String {
var s = ""
for x in self {
if let p = x as? Printable {
if s != "" { s += ", " }
s += p.description
}
}
return s
}
}
28:26:错误:不能从T' T'非@ objc协议类型'可打印'
如何获取数组中每个元素的字符串表示?
或者有没有办法可以在数组中找到Printable
元素?
答案 0 :(得分:1)
字符串插值?
extension Array {
func dump() -> String {
var s = ""
for x in self {
let x_str = "\(x)"
s += x_str
if !x_str.isEmpty {
s += ","
}
}
return s
}
}
答案 1 :(得分:0)
您也可以使用reduce
:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
arr.reduce("") { $0 == "" ? "\($1)" : "\($0), \($1)" }
// "1, 2, 3, 4, 5, 6, 7, 8, 9"