什么是单例类型?



什么是单例类型?应用和影响是什么?

例子非常受欢迎,外行术语更受欢迎!

如果将类型看作值的集合,则值x的单例类型是仅包含该值({x})的类型。使用例子:

  1. 模式匹配:case _: Foo.type使用eq检查匹配对象是否与Foo相同,其中case Foo仅使用equals检查它是否等于Foo

  2. 需要写下object的类型(作为类型参数,参数等):

    object A
    def method(): A.type = A
    
  3. 保证一个方法的返回值是它被调用的对象(对于方法链接很有用,从这里的例子):

    class A { def method1: this.type = { ...; this } }
    class B extends A { def method2: this.type = { ...; this } }
    

    你现在可以调用new B.method1.method2,如果没有this.type你就不能这样做,因为method1会返回A

相关内容

  • 没有找到相关文章