2016-06-17 4 views
-5

私は現在自分自身をスカラーにしようとしています。しかし、私は次のように捕まってしまった:スカラ、いくつかの値を取得する(値)

val value: String = properties(j).attribute("value").toString 
print(value) 

XMLプロパティが読み込まれ、文字列に変換しますが、「いくつかの(値)」として表示されますされています。私はいくつかのことを試しましたが、私は自分自身が "Option:String"(これは一般的な解決策)で値を作成していないと動作しないようです。誰かが「いくつか(」?

挨拶 馬

+0

XMLに値属性がない場合はどうなりますか? – Kolmar

+7

これはおそらくあなたのための良い読書です、オプションのタイプはScalaで本当によく知られています。http://danielwestheide.com/blog/2012/12/19/the-neophytes-guide-to- scala-part-5-the-option-type.html – alextsc

答えて

4

平野Stringとは対照的に、あなたは上のtoStringメソッドを呼び出している値は、Option[String]タイプで取り除くための簡単な方法を知っています。場合には値がある場合はSome(value)、値がない場合はNoneとなります

これにより、2つの可能性のあるケースを処理する必要があります。一致:

val value: String = properties(j).attribute("value") match { 
    case None => ""//Or handle the lack of a value another way: throw an error, etc. 
    case Some(s: String) => s //return the string to set your value 
} 
0

こんにちは、ありがとう。 私は小さな変更を加えてコードを取りました。最初は変数node.seq, String, Some(String), Some[A]とかなり混乱していました。

val value = properties(j).attribute("value") match { 
       case None => "" 
       case Some(s) => s //return the string to set your value 
      } 
関連する問題