gpt4 book ai didi

scala - Scala中Singleton这个词的含义

转载 作者:行者123 更新时间:2023-12-01 13:42:47 27 4
gpt4 key购买 nike

我了解 Singleton 对象是什么,但是在仔细阅读库时我遇到了一些让我感到困惑的事情:混合 Singleton

trait Foo[A <: Bar with Singleton] 

我似乎无法找到有关这意味着什么的信息。 A 是 Bar-with-Singleton-access 的子类型? Singleton 中的混合提供了什么?

最佳答案

这里有一个相关的问题:Is scala.Singleton pure compiler fiction?

这里:Why do String literals conform to Scala Singleton

这可能有助于理解 scala.Singleton

“Singleton 类型本质上是一种针对具有值的存在性的编码技巧。即

T forSome { val x: T } 

变成了

[x.type := X] T forSome { type X <:T with Singleton } 

这不是您通常会自己使用的东西。尽管您可以使用 Singleton 来强制执行一种 Singleton 类型,例如方法的参数。例如

object X
class C

def foo[T<:Singleton](singleton: T): Unit = {
print(singleton.getClass.getName)
}

foo(X) //This would work, outputs X$

foo(new C) //This would not work

关于scala - Scala中Singleton这个词的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38538185/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com