代码之家  ›  专栏  ›  技术社区  ›  raul ferreira

使用varargs函数进行类型检查

  •  0
  • raul ferreira  · 技术社区  · 7 年前

    如果我定义这个(无意义的)函数:

    def g[A](f: (A*) => A): Int = {
      10
    }
    

    为什么编译器类型不检查以下情况?

    def add(x: Int, y: Int) = x+ y
    
    g(add)
    

    我是说,不应该 (A, A) (A*) ?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Tzach Zohar    7 年前

    (A, A) 元组 ( Tuple2 )因此,它不会将检查类型设置为 (A*) A* 可以传递给 g ,例如:

    def add(ints: Int*): Int = ints.sum