protocol Named {
var name: String {get set}
}
struct Flower: Named {
var name: String
}
struct City: Named {
var name: String
}
struct Star: Named {
var name: String
}
let rows: [Named] = [
Flower(name: "Rose"),
City(name: "Rome"),
Star(name: "Sirius")]
let list = rows.map({$0.name}).joined(separator: ", ")
//list is Rose, Rome, Sirius
print("list is \(list)")