我是一名python / go编码器,是scala的新手。我有一个使用if和else的代码片段,但是有任何建议将它写成" scala"方式是什么?
if (sp.bin_an.size() > 0) {
sp.bin_an.asScala.toList.foreach { an =>
if (an.host != null && an.host.name != "" && an.routine == "xx") {
service = an.host.name
}
}
答案 0 :(得分:0)
而不是list.foreach(x => if(cond) action)
您可以执行过滤,然后像list.filter(cond).foreach(x => action)
所以您的上述示例可以重写为
sp.bin_an.asScala.toList.filter(an => an.host != null && an.host.name != "" && an.routine == "xx").foreach()
答案 1 :(得分:0)
大多数情况下,只需执行map
或foreach
即可避免检查尺寸 - 如果收集为空,则不会发生任何事情。尽量避免像服务这样的变量。您最好将过滤结果分配给val
val service = sp.bin_an.asScala.toList.filter(an => an.host != null && an.host.name != "" && an.routine == "xx").map { an => an.host.name}
也许.toList转换是多余的。