Scala:for循环直到条件
Posted
技术标签:
【中文标题】Scala:for循环直到条件【英文标题】:Scala: for loop until condition 【发布时间】:2013-12-09 19:39:10 【问题描述】:如何运行for
直到满足条件?除了使用scala.util.control.Breaks.break
,是否可以测试for
中的条件?
for(line <- source.getLines)
if (line.equals("")) scala.util.control.Breaks.break
Console print "Message> "
dataWriter.write(line, InstanceHandle_t.HANDLE_NIL)
catch
case e: IOException =>
【问题讨论】:
你应该像这样使用takeWhile
:for(line <- source.getLines.takeWhile_ != "")
谢谢@senia!使用!=
来比较String
s 是否安全,而不是!equals("")
?
是的。在scala
中,==
是equals
的空安全等效项(它调用equals
)。还有另一个用于引用相等的运算符(你不需要它)。
【参考方案1】:
试试takeWhile
for(line <- source.getLines.takeWhile(!_.isEmpty))
Console print "Message> "
dataWriter.write(line, InstanceHandle_t.HANDLE_NIL)
或
source.getLines.takeWhile(!_.isEmpty).foreach
line =>
Console print "Message> "
dataWriter.write(line, InstanceHandle_t.HANDLE_NIL)
【讨论】:
以上是关于Scala:for循环直到条件的主要内容,如果未能解决你的问题,请参考以下文章