我是Scala的新手,我正试图弄清楚如何迭代一系列Buckets(来自Amazon AWS),并从每个存储桶获取数据并将其存储在新阵列中。
在Java中,这只是
ArrayList<String> names = new ArrayList<String>();
for(Bucket bucket : bucket) {
names.add(bucket.getName();
}
但是,我如何在Scala中执行此操作?我知道我定义了一种类似于
的函数buckets.foreach(bucket => FILL IN SOME WAY OF FILLING UP ARRAY)
但是,这就是我所得到的。
非常感谢任何和所有帮助。谢谢,
答案 0 :(得分:1)
如果buckets
是scala集合,则在scala中等效。
val names = buckets map (_.getName)
如果不是你需要说
import scala.collection.JavaConverters._
buckets.asScala.map(_.getName)
对于更多的结构方法,在scala中不鼓励这样做,你不应该这样做,但为了完整起见,你可以看到你需要做些什么才能让你的解决方案起作用,你可以使用foreach
像这样
var names = Vector.empty[String]
buckets foreach (bucket => names :+= bucket.getName)
或使用foreach循环,可能更熟悉
var names = Vector.empty[String]
for (bucket <- buckets) {
names :+= bucket.getName
}
但是你仍然可以用于理解并以功能的方式获得有效的结果
val names = for (bucket <- buckets) yield bucket.getName