如何在 Swift 中的对象上获取 属性 的数组

How to get an array of a property on an object in Swift

我有一个 Tag 对象数组,这些对象有一个 属性 称为标签,它是一个字符串。

public struct Tag {
    public let name: String
}

我想要获取所有这些名称属性的数组。

给定一个标签数组,在 Objective-C 中,我将使用以下行完成此操作:

NSArray *tagNames = [tags valueForKey:@"name"]

如何在 Swift 中实现相同的目的?

我试过:

let tagNames = tags.map({ [=14=].name })

但是出现编译器错误:“'[Tag]' 类型的值没有成员 'name'。

您似乎有一个数组,其中包含另一个 Tag 对象数组。 这对我有用:

let tags = [Tag(name: "tag1"), Tag(name: "tag2"), Tag(name: "tag3")]
let names = tags.map{[=10=].name }
print("Names: \(names)")