这期内容当中小编将会给大家带来有关Scala非值类型的作用是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
十余年的长沙县网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整长沙县建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“长沙县网站设计”,“长沙县网站推广”以来,每个客户项目都认真落实执行。
方法类型
方法类型在内部表示为(Ts)U,(Ts)是一个类型序列(T1,...,Tn) n>=0,U是一个(值或者方法)类型。这个类型表示一个命名的方法,其参数的类型是T1,...,Tn,返回结果的类型是U。
方法类型是右结合的,(Ts1)(Ts2)U被处理的方式是(Ts1)((Ts2)U)。
一个特例是没有参数的方法类型。可以写为=>T的形式。无参数方法名称表达式将会在每次名称被引用时求值。
方法类型并不以值的类型的形式存在。如果方法名以值的方式被引用,其类型将会被自动转换为对应的函数类型(§6.25)。
示例3.3.1 以下声明:
defa: Int
defb (x: Int): Boolean
defc (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 以下声明:
defempty[A]: List[A]
defunion[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]的片段:
traitIterable[+X] {
defflatMap[newType[+X]<:Iterabe[X], S](f: X => newType[S]): newType[S]
}
上述就是小编为大家分享的Scala非值类型的作用是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。
文章标题:Scala非值类型的作用是什么
当前地址:http://scgulin.cn/article/jjjdso.html