【发布时间】:2020-04-26 19:15:03
【问题描述】:
什么是单例类型?有什么应用,有什么影响?
例子更受欢迎,外行术语更受欢迎!
【问题讨论】:
标签: scala types singleton-type
什么是单例类型?有什么应用,有什么影响?
例子更受欢迎,外行术语更受欢迎!
【问题讨论】:
标签: scala types singleton-type
如果您将类型视为一组值,则值x 的单例类型是仅包含此值的类型({x})。用法示例:
模式匹配:case _: Foo.type 使用eq 检查匹配的对象是否与Foo 相同,其中case Foo 仅使用equals 检查它是否等于Foo。
需要写下object 的类型(作为类型参数、实参等):
object A
def method(): A.type = A
为了保证方法的返回值是它被调用的对象(对于方法链很有用,例如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。
【讨论】:
foo相同”——您的意思是“与Foo相同”吗?