什么是单身人士类型?

时间:2015-10-10 08:48:45

标签: scala types singleton-type

什么是单身人士?有什么应用,影响?

示例非常受欢迎,外行人的条款更受欢迎!

1 个答案:

答案 0 :(得分:9)

如果将类型视为一组值,则值x的单例类型是仅包含此值({x})的类型。用法示例:

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

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

  3. 对于保证方法返回值的可变对象是对象(对方法链有用,例如from here):

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

    现在,您可以拨打new B.method1.method2,但由于this.type将返回method1,因此您无法A