4

私はBeginningScalaを読んでいて、REPLの例を試していました。以下のようにxmlとtoInt関数を作成しました

val x = <x>{(1 to 3).map(i => <i>{i}</i>)}</x>

def toInt(in : String) : Option[Int] = {
    try { 
      Some(Integer.parseInt(in)) 
    }
    catch {
      case e : Exception => None
    } 
  }

そして、私は次のことを試みました

(x \\ "i").map(i => i.text.toInt) // returns Seq[Int]

(x \\ "i").map(i => toInt(i.text)) // returns Sep[Option[Int]]

最初のバージョンがSeq[Int]を返し、2番目のバージョンがSeq [Option [Int]]を返すのはなぜですか?

ありがとう

4

1 に答える 1

3

1つ目は、で定義されている組み込みメソッドです。StringLike

def toInt: Int = java.lang.Integer.parseInt(toString)

これは整数が見つからない場合に例外をスローします

于 2013-03-12T21:21:38.873 に答える