我目前正試圖讀入斯卡拉自己。但我被卡在以下內容:斯卡拉,從一些(價值)獲得價值
val value: String = properties(j).attribute("value").toString
print(value)
xml屬性被讀取並轉換爲字符串,但被視爲「Some(value)」。我嘗試了幾件事情,但似乎沒有工作,當我自己創造的價值與「選擇:字符串」(這是常見的解決方案)。是否有人知道一個簡單的方法來擺脫「有些(」?
問候的 馬
我目前正試圖讀入斯卡拉自己。但我被卡在以下內容:斯卡拉,從一些(價值)獲得價值
val value: String = properties(j).attribute("value").toString
print(value)
xml屬性被讀取並轉換爲字符串,但被視爲「Some(value)」。我嘗試了幾件事情,但似乎沒有工作,當我自己創造的價值與「選擇:字符串」(這是常見的解決方案)。是否有人知道一個簡單的方法來擺脫「有些(」?
問候的 馬
的價值,我們在調用toString方法上是Option[String]
型,而不是一個普通的String
。當有一個價值,你會得到Some(value)
,而如果沒有價值,你會得到None
。
因此,你需要處理你可能會回來的兩種可能的情況。匹配:
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
}
嗨,感謝您的意見。 我把你的代碼做了一些小小的修改,開頭的變量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
}
當XML沒有值屬性時會發生什麼? – Kolmar
這對您來說可能是一個很好的閱讀,Option類型在Scala中非常常見,值得熟悉它:http://danielwestheide.com/blog/2012/12/19/the-neophytes-guide-to-斯卡拉部分-5的選項,type.html – alextsc