簡體   English   中英

輸入與Scala Try不匹配的內容

[英]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=...分配沒有意義的返回值,所以resultSuccess(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM