雖然與我的私有不可變類構造函數以及輔助構造函數必須作爲第一條語句互相調用的約束作鬥爭,但沒有任何其他類來自作用域中的類,我似乎被約束爲我的實例化使用伴隨對象,並且因爲我的伴侶對象必須訪問主構造函數,所以我需要private關鍵字來定位包含該對象的作用域。 現在,我的大腦是名代弱,我想通過把班裏的同伴中的對象本身保存一個封閉的命名空間都那個伴侶對象和類的需求,這種方式: object Group {
我有一個類型的變量,我想從伴侶對象獲取信息。例如,我想我也許能夠做這樣的事情: def foo[I: Integral](i:I): = {
val minVal = i match {
case _:Byte => Byte.MinValue
case _:Char => Char.MinValue
case _:Int => Int.MinValue
在試圖理解伴隨對象時,我編寫了以下代碼來計算實例化類的次數。我必須使用'var'來保持計數。是否有一種「函數式編程」方式來實現相同的任務,即使用不可變變量。 class C {
C.counter+=1
def someCFunction = {println ("some C function. Counter is "+C.counter)}
}
object C{
我使用的是最新版本的IntelliJ的斯卡拉插件,並有這下面這段代碼,其目的是爲了讓Count類的實例枚舉: class Count() {
val id = Count.id()
override def toString = s"Count$id"
}
object Count {
var n = -1
def id() = { n += 1; n