首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >scala中的Lscala.Tuple2匹配

scala中的Lscala.Tuple2匹配
EN

Stack Overflow用户
提问于 2014-04-28 03:40:49
回答 1查看 919关注 0票数 0

我正在使用Spark的DAGScheduler中的Scala代码,并出现了与似乎是Tuple2的内容相匹配的问题。诚然,我对Scala不太了解,所以我遇到了一些麻烦。我有一个似乎是Tuple2的对象(至少在使用getClass方法时是这样报告的)。但是,我已经尝试了各种匹配语法以使其匹配。我正在尝试的代码如下:

代码语言:javascript
复制
def verify(resultArray: ArrayBuffer[Any]) {
    logInfo("RESULTS STRING: "+resultArray(0).toString)
    logInfo("RESULTS CLASS: "+resultArray(0).getClass)

    resultArray(0) match {
      case Tuple2 =>
        logInfo("TUPLE2")
      case Tuple2(_, _) =>
        logInfo("TUPLE2(_, _)")
      case (v1, v2) =>
        logInfo("(v1, v2)")
      case (_, _) =>
        logInfo("(_, _)")
      case tu: (_, _) =>
        logInfo("tu: (_, _)")
      case (s: String, i: Int) =>
        logInfo("(s: String, i: Int)")
      case _ =>
        logInfo("_")
    }

或多或少,我尝试将我可以在web上找到的用于匹配元组的所有可能的匹配语法填入match语句中。然而,所有这些都不匹配。什么会被打印出来:

代码语言:javascript
复制
14/04/28 03:37:32 INFO Verifier: RESULTS STRING: [Lscala.Tuple2;@4627d044
14/04/28 03:37:32 INFO Verifier: RESULTS CLASS: class [Lscala.Tuple2;
14/04/28 03:37:32 INFO Verifier: _

有人知道这里会发生什么事吗?或者有小费吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-28 04:45:31

因此,在上面的评论之后,我实现了如下内容:

代码语言:javascript
复制
  def verify(resultArray: ArrayBuffer[Any]) {
    val loop = new Breaks
    var count = 0
    var votes:Array[Int] = new Array[Int](4)
    var i = 0
    logInfo("RESULTS STRING: "+resultArray(0).toString)
    logInfo("RESULTS CLASS: "+resultArray(0).getClass)

    resultArray(0) match {
      case Some(Int) =>
        logInfo("Some(Int)")
      case _ =>
        logInfo("_")
        resultArray(0).asInstanceOf[Array[Tuple2[_, _]]](0) match {
          case (_, _) =>
            logInfo("(_, _)")
            val tuples = resultArray(0).asInstanceOf[Array[Tuple2[_, _]]]
            for (t <- tuples) {
                logInfo("1: "+t._1+" 2: "+t._2)
            }
          case _ =>
            logInfo("result(0)(0): _")
        }
    }

似乎打印出数组中的所有元组。谢谢!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23332120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档