Scala 中的型別判斷

2021-10-02 08:43:23 字數 768 閱讀 6626

scala中物件提供isinstanceof和asinstanceof方法。

// 判斷物件是否為指定型別

val trueo***lse:boolean = 物件.isinstanceof[型別]

// 將物件轉換為指定型別

val 變數 = 物件.asinstanceof[型別]

object test01 ")}

}}

isinstanceof 只能判斷物件是否為指定類以及其子類的物件,而不能精確的判斷出,物件就是指定類的物件。如果要求精確地判斷出物件就是指定類的物件,那麼就只能使用 getclass 和 classof 。

object test02 "

)//true

//判斷p 的 型別 是否為person 類

val bool1 = p.getclass == classof[person]

println

(s"bool1 = $"

)//false

//判斷 p 的型別是否為student 類

val bool2 = p.getclass == classof[student]

println

(s"bool2 = $")}

}

Scala中的列舉型別

在scala的enumeration類中定義了乙個名為value的內部類,跟這個內部類同名的不帶引數的value方法每次都返回這個類的全新例項。也可以用過載value的方法給列舉值關聯特定的名稱,如下 定義列舉類.package com.mc.enum object genderenum exten...

Scala中結構型別 復合型別解析

scala具有豐富的資料結構型別,結構型別 定義乙個方法,該方法的入參是乙個匿名型別物件,該類包含若干個函式或方法,這樣就可以定義乙個具有結構型別的方法 當呼叫該方法時傳入具有具體實現方法的結構型別物件 注 1 函式的入參型別是乙個匿名型別 我們自己可以定義 2 通過type型別定義匿名型別例項物件...

Scala中的引數型別和延遲型別定義

在scala中,有兩種方式可以用來支撐高階物件。1.型別引數 trait dataops a val numbericops new dataops int 特質上有乙個泛型a,當例項化型別的時候可以填入 2.延遲定義到子類 trait dataops val numbericops new dat...