[英]Type mismatches with Scala Try
下面,我試圖提取一個Tweet JSON字段retweeted_status
。 我檢查JSON是否包含該字段,然后使用Try
提取它。 我想將提取的成功值分配給var retweet_count
並在失敗時將retweet_count
指定為0.但是當我嘗試這種case Success(result)=> retweet_count = result
我得到一個不匹配錯誤,指出BigInt與Unit不匹配。
打印出retweeted_favorite_count2
的類我得到了scala.runtime.BoxedUnit
。 圍繞這個是什么工作?
var retweet_count: BigInt= 0
if (value.has("retweeted_status")){
val retweeted_favorite_count0 = value\"retweeted_status"\"favorite_count"
val retweeted_favorite_count1 = Try(retweet_count=retweeted_favorite_count0.extract[BigInt])
val retweeted_favorite_count2 = retweeted_favorite_count1 match {
case Success(result)=> result
case Failure(exception)=> 0
case _=> 0
}
println(" retweeted_favorite_count2"+ retweeted_favorite_count2.getClass )
你的內容Try
是賦值: retweet_count=...
分配沒有意義的返回值,所以result
在Success(result)
是不是一種Int
。
您可以在評估Try
之后進行任務來解決這個問題。
val retweeted_favorite_count2 =
Try(retweeted_favorite_count0.extract[BigInt]) match {
case Success(result)=>
retweet_count = result
result
case Failure(_)=> 0
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.