You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scala中创建存储Tuple的数组报错,如何正确实现?

解决方法

错误原因很明确:Tuple2是带两个类型参数的泛型类,你必须指定它的具体类型参数(比如坐标的类型是整数、浮点数等),不能直接用Array[Tuple2]这种写法。

以下是几种可行的实现方式:

  • 指定具体类型参数(推荐)
    如果你的坐标是整数类型,直接明确声明:

    // 完整写法
    var walls = Array[Tuple2[Int, Int]]()
    // Scala简化写法(更常用)
    var walls = Array[(Int, Int)]()
    

    后续可以正常添加元素:

    walls += ((1, 2))
    walls += (3, 4) // 甚至可以省略外层括号
    
  • 使用通配符(适用于暂时不确定类型的场景)
    如果暂时不需要明确类型,可以用通配符占位:

    var walls = Array[Tuple2[_ , _]]()
    // 简化写法
    var walls = Array[(_, _)]()
    

    但这种写法会丢失类型信息,后续操作可能需要类型转换,不推荐在业务代码中频繁使用。

  • 让编译器自动推断类型
    初始化时直接添加元素,Scala会自动推断数组和元组的类型:

    var walls = Array((1, 2), (3, 4))
    // 此时walls的类型自动推断为 Array[(Int, Int)]
    

内容的提问来源于stack exchange,提问作者TamZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 08:59:18