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

2022-02-05 03:09:24 字數 347 閱讀 6548

在scala中,有兩種方式可以用來支撐高階物件。

1. 型別引數:

trait dataops[a] 

val numbericops = new dataops[int]{}

特質上有乙個泛型a,當例項化型別的時候可以填入

2. 延遲定義到子類

trait dataops 

val numbericops = new dataops

特質上沒有定義泛型,而是需要在子類中定義type a的具體型別 

兩種方法都能達到同一目的,如何取捨在於子類的型別是否穩定,如果變化很大,或者個數眾多的話不建議使用第二種。

Scala中的列舉型別

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

Scala 中的型別判斷

scala中物件提供isinstanceof和asinstanceof方法。判斷物件是否為指定型別 val trueo lse boolean 物件.isinstanceof 型別 將物件轉換為指定型別 val 變數 物件.asinstanceof 型別 object test01 isinstan...

scala的傳名引數和傳值引數

傳名引數 傳值引數 因為scala 建議如果函式的引數只有乙個,可以考慮使用 代替 因此test和test1的呼叫都是 又因為test的引數是傳名引數函式,因此傳入的引數是不會被執行的,而test1的引數是傳值引數,因此需要先計算引數的值,然後再傳入test1的方法體中,恰好test1傳入引數的計算...