在scala中,你是否可以通过一个对象列表进行迭代,然后根据元素的一个属性的类型创建一个值数组?假设我有一个元素列表,每个元素都有一个属性,属性可以是不同的类型......
for (element <- elementList) element.attribute match {
case a: Type1 => "Type1"
case a => "All Types"
}
然后生成的数组将是一个值为
的数组Array("Type1", "Type1", "All Types", "Type1", "All Types", "All Types", "All Types", "All Types")
答案 0 :(得分:3)
为什么您不使用List(Element)
到List(String)
的地图功能?
如果您想从List(String)
获取数组,则可以使用toArray
函数。
答案 1 :(得分:3)
您只需要yield
结果......并且可能会转换为Array
。
(for (element <- elementList) yield element.attribute match {
case a: Type1 => "Type1"
case a => "All Types"
}).toArray