[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...