What is a Singleton Type exactly?

后端 未结 1 1114
深忆病人
深忆病人 2020-12-03 17:01

What is a singleton type? what are the applications, the implications ?

Examples are more than welcome and layman terms are even more welcome !

相关标签:
1条回答
  • 2020-12-03 17:44

    If you think of a type as a set of values, the singleton type of a value x is the type which only contains this value ({x}). Usage examples:

    1. Pattern matching: case _: Foo.type checks that the matched object is the same as Foo using eq, where case Foo only checks that it's equal to Foo using equals.

    2. It's needed to write down the type of an object (as a type parameter, an argument, etc.):

      object A
      def method(): A.type = A
      
    3. To guarantee the return value of a method is the object it's called on (useful for method chaining, example from here):

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

      You can now call new B.method1.method2, which you couldn't without this.type because method1 would return A.

    0 讨论(0)
提交回复
热议问题