您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關Scala非值類型的作用是什么,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
方法類型
方法類型在內部表示為(Ts)U,(Ts)是一個類型序列(T1,...,Tn) n>=0,U是一個(值或者方法)類型。這個類型表示一個命名的方法,其參數的類型是T1,...,Tn,返回結果的類型是U。
方法類型是右結合的,(Ts1)(Ts2)U被處理的方式是(Ts1)((Ts2)U)。
一個特例是沒有參數的方法類型。可以寫為=>T的形式。無參數方法名稱表達式將會在每次名稱被引用時求值。
方法類型并不以值的類型的形式存在。如果方法名以值的方式被引用,其類型將會被自動轉換為對應的函數類型(§6.25)。
示例3.3.1 以下聲明:
def a: Int
def b (x: Int): Boolean
def c (x: Int)(y: String, z: String): String
產生以下類型:
a: => Int
b: (Int) Boolean
c: (Int)(String, String) String
多態方法類型
多態方法類型在內部表示為[tps]T,[tps]是類型參數部分[a1 >: L1 <: U1,...,an >: Ln <: Un],n>=0,T是一個(值或方法)類型。該類型表示一個以S1,...,Sn為類型參量并產生類型為T的結果的命名方法,參數類型S1,...,Sn與下界L1,...,Ln和上界U1,...,Un一致(§3.2.4)。
示例3.3.2 以下聲明:
def empty[A]: List[A]
def union[A <: Comparable[A]] (x: Set[A], xs: Set[A]): Set[A]
產生如下類型:
empty: [A >: Nothing <: Any] List[A]
union: [A >: Nothing <: Comparable[A]] (x: Set[A], xs: Set[A]) Set[A]
類型構造器
類型構造器在內部的表示方法類似于多態方法類型。[+/- a1 >: L1 <: U1,...,+/-an >: Ln <: Un] T表示一個期望是類型構造器參數(§4.4)或有對應類型參數子句的抽象類型構造器綁定(§4.3)的類型。
示例3.3.3 以下是類Iterable[+X]的片段:
trait Iterable[+X] {
def flatMap[newType[+X]<:Iterabe[X], S](f: X => newType[S]): newType[S]
}
上述就是小編為大家分享的Scala非值類型的作用是什么了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。