Eta*_*tam 1 java foreach scala return
你如何使这种方法有效?
def filled(b: Board): Board = {
b.next foreach { n =>
if (n.filled) n
else filled(n)
}
}
Run Code Online (Sandbox Code Playgroud)
我需要它在首次填充n(n.filled == true)之后返回,就像在Java中一样.
现在我得到:
chess-knight.scala:72: error: type mismatch;
found : Unit
required: this.Board
b.next foreach { n =>
^
one error found
Run Code Online (Sandbox Code Playgroud)
谢谢!
这不是你需要的吗?
def filled(b: Board): Board = b.next find {_.filled} get
Run Code Online (Sandbox Code Playgroud)
提供这b.next是一个,Seq[Board]并且总是至少有一个filled Board.
如果你 坚持纯粹的功能更喜欢利用模式匹配的方法List:
def filled(b: Board): Board = {
b.next match {
case n :: _ if(n.filled) => n
case _ :: rest => filled(rest)
case Nil => throw NoSuchElementException
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1652 次 |
| 最近记录: |