Scala入門七 scala的泛型

2021-08-28 05:50:47 字數 820 閱讀 2469

[a<:] :上邊界:表達了泛型的型別必須是"某種型別"或某種型別的"子類"

案例:override def toset[b >: a]: set[b] = {}

[a>:] :下邊界:表達了泛型的型別必須是"某種型別"或某種型別的"父類"

案例:override def toset[b >: a]: set[b] = {}

[a<%] : view bounds可以進行某種神秘的轉換,把你的型別在沒有知覺的情況下轉換成目標型別

可以認為view bounds是上下邊界的加強和補充,語法為:"<%",要用到implicit進行隱式轉換

「t:classtag」:相當於動態型別,你使用時傳入什麼型別就是什麼型別

逆變和協變:-t和+t: +t可以傳入其子類和本身(與繼承關係一至)-t可以傳入其父類和本身(與繼承的關係相反)

案例:trait scala.collection.immutable.map[k, +v] extends iterable[(k, v)]

「t:ordering」 :表示將t變成ordering[t],可以直接用其方法進行比大小,可完成排序等工作

[a]: 一般形式:

案例:trait scala.collection.immutable.set[a] extends iterable[a]
**說明:

//泛型類

class

student

[a] def m[t]()

:unit=

}object genericdemo01

}

Scala七 Scala核心一 函式

1.如果函式體只有一行 則可以不用寫 比如 def print x int println x 一行上的多條語句用分號隔開,則只有第一句屬於方法體,例如 def printwithvalue x int string println x abc 上面的 報錯,因為,printwithvalue的方法...

scala的泛型類

泛型類 scala的類也可以定義泛型。接下來,我們來學習如何定義scala的泛型類 定義 語法格式 class 類 t val 變數名 t 定義乙個泛型類,直接在類名後面加上方括號,指定要使用的泛型引數 指定類對應的泛型引數後,就使用這些型別引數來定義變數了 示例 示例說明 實現乙個pair泛型類 ...

Scala 語法入門

for i 1 to 3 j 1 to 3 println i j for i 1 to 3 j 1 to 3 if i j print f 3d 引數後面跟型別 def sum a int,b int int var sumfun a int,b int a b 預設值 def sum a int...