7

このコードを修正する方法がわかりません。returnFirstStringのどこかで「爆発」しますが、その理由はわかりません。また、 printlnを使用して結果を適切に表示する方法がわかりません。このアプローチは大丈夫ですか?

コードは次のとおりです。

def returnFirstString(a: Array[String]): Option[String]=
{
    if(a.isEmpty) { None }
    Some(a(0))
}
val emptyArrayOfStrings = Array.empty[String]
println(returnFirstString(emptyArrayOfStrings))
4

2 に答える 2

14

None を適切に返していません:

  def returnFirstString(a: Array[String]): Option[String] = {
    if (a.isEmpty) {
      None
    }
    else {
      Some(a(0))
    }
  }

また、ほとんどの scala コレクションには、このためのメソッドが既にあります。

emptyArrayOfStrings.headOption
于 2013-02-25T19:14:47.950 に答える
5

最も簡潔な方法:

def returnFirstString(a: Array[String]): Option[String]= a.headOption
于 2013-02-25T19:15:56.847 に答える