Scala进阶27-List中的上界、下界、逆变、协变
2016-08-30 00:20
267 查看
abstract class Big_Data class Hadoop extends Big_Data class Spark extends Big_Data /** * ::是中值表达式 * def ::[B >: A] (x: B): List[B] = * new scala.collection.immutable.::(x, this) * A是以B为上界的,或者说B是以A为下界的。返回是上界B,list是协变的,函数的参数(x:B)其实是逆变的。 * 函数的参数时逆变的,就不能保持函数的返回结果类型是协变的了。使得list可以容纳具体的上界的所有子类型。 */ object List_Constructor_Internals { //hadoop: List[Hadoop] = List(Hadoop@483f6d77) val hadoop = new Hadoop :: Nil //big_Data: List[Big_Data] = List(Spark@f58853c, Hadoop@483f6d77) val big_Data = new Spark :: hadoop //等同于这样写 val big_data1 = hadoop.::(new Spark) }
相关文章推荐
- codeforces Round#369 div2-D tDirected Roads
- 设计模式
- SAR命令查看网络中断
- 10GE网卡终端聚合参数
- React Native 踩坑记--迈出第一步
- 14.Apache配置
- 【Linux开发】OpenCV在ARM-linux上的移植过程遇到的问题4---共享库中嵌套库带路径【已解决】
- 读《About Face 4 交互设计精髓》17
- Widget桌面小部件
- 流年,留念
- 注释转换
- 日历插件
- Codeforces Round #369 (Div. 2) A. Bus to Udayland (水题)
- Java 基础总结 6 --- 面向对象
- Ubuntu 安装Oracle Java JDK
- 小项目--大数运算
- Maven的pom.xml文件详解------Build Settings
- 高级Bash脚本编程指南(1): 为什么使用shell编程
- ROS Learning-007 beginner_Tutorials ROS节点
- Codeforces Round #369 (Div. 2) B. Chris and Magic Square (暴力)