代码之家  ›  专栏  ›  技术社区  ›  Maths noob

Scala:没有参数的单一抽象方法

  •  1
  • Maths noob  · 技术社区  · 6 年前

    对于SAM类型,我们可以:

    trait Sam {
      def foo(i: Int): String
    }
    
    val sam : Sam = _.toString
    

    如果我的抽象方法没有参数呢?

    1 回复  |  直到 6 年前
        1
  •  2
  •   sepp2k    6 年前

    可以将lambda与空参数列表一起使用,如下所示:

    trait Sam {
      def foo(): String
    }
    
    val sam : Sam = () => "hello"
    

    _ 因为没有办法用 _ .

    如果 foo def foo: String 相反(即,如果它没有参数列表),因为SAM转换仅适用于单个方法只有一个参数列表的情况。