复合类型与with关键字
符合类型的表现形式为:
class A extends B with C with D with E
应做类似如下形式解读:
class A extends (B with C with D with E)
这正是《scala for the impatient》这本书上的内容,我下面的理解也基本源于这本书。
T1 with T2 with T3 …
这种形式的类型称为复合类型(compound type)或者也叫交集类型(intersection type)。
跟结构类型类似,可以在一个方法里声明类型参数时使用复合类型:
scala> trait X1; trait X2;scala> def test(x: X1 with X2) = {println("ok")}
test: (x: X1 with X2)Unitscala> test(new X1 with X2)
okscala> object A extends X1 with X2scala> test(A)
ok
也可以通过 type 声明:
scala> type X = X1 with X2
defined type alias Xscala> def test(x:X) = println("OK")
test: (x: X)Unitscala> class A extends X1 with X2scala> val a = new Ascala> test(a)
OK
在上一篇介绍结构类型时也提到过复合类型中也可包含结构类型:
scala> type X = X1 with X2 { def close():Unit }
defined type alias X
复合类型与with关键字相关推荐
- 黑马程序员C语言基础(第八天)复合类型(自定义类型)(结构体)、共用体(联合体)、枚举enum、 typedef
黑马程序员C语言基础(第一天) 黑马程序员C语言基础(第二天) 黑马程序员C语言基础(第三天) 黑马程序员C语言基础(第四天)数据类型 黑马程序员C语言基础(第五天)运算符与表达式.程序流程结构.数组 ...
- Golang的基本类型、引用类型、复合类型
1.基础内置类型: 包括数值类型.字符串类型.布尔类型.数组等除5种引用类型和复合类型外都是基础内置类型.当对这些类型的值进行增加或者删除的时候会创建一个新值,因此当把这些类型的值传递给方法或者函数时 ...
- C/C++学习之路_八: 复合类型
C/C++学习之路_八: 复合类型 目录 结构体 共用体(联合体) 枚举 typedef 1. 结构体 1. 概述 有时我们需要将不同类型的数据组合成一个有机的整体,如:一个学生有学号/姓名/性别/年 ...
- c++primer plus 6 读书笔记 第四章 复合类型
目录 第4章复合类型 4.1 数组 4.1.1 4.1.2 数组的初始化规则 4.1.3C ++数组初始化方法使用{} 赋值,禁止缩窄转换. 4.2 字符串 4.2.1 拼接字符串常量 4.2.2 在 ...
- 【C++ Primer Plus】第4章 复合类型
目录 [数组] [C- 字符串] 字符串的输入 字符串拼接 字符串常用函数 [数组长度] [string类] 原始字符串 [struct 结构简介] [枚举] [指针和自由存储空间] 使用new分配内 ...
- c++ 复合类型 读书笔记(二)
目录 String类 string拼接 赋值 struct 结构数组 结构中的位字段 共用体(union) 枚举(enum) 设置枚举量的值 枚举量的取值范围 指针与c++基本原理 声明和初始化指针 ...
- 一起Talk IOS吧(第八回 OC中复合类型的代码演示)
看官们,我们在第三回中介绍了OC中的复合类型,有看官说介绍的不够详细,因此我使用图形的方式对所有基本类型做了总结,请参考以下图片中的内容. 看完类型的总结后,我们将通过具体的代码来演示如何使用这些类型 ...
- C++ Primer Plus 学习笔记(第 4 章 复合类型)
C++ Primer Plus 学习笔记 第 4 章 复合类型 数组 数组(array)是一种数据格式,能够存储多个同类型的值. 要创建数组,可使用声明语句.数组声明应指出以下三点: 存储在每个元素的 ...
- 第 4 章 复合类型
目录 4.1 数组 4.1.1 程序说明 4.1.2 数组的初始化规则 4.1.3 C++数组初始化方法 4.2 字符串 4.2.1 拼接字符串常量 4.2.2 在数组中使用字符串 4.2.3 字符串 ...
最新文章
- 如何对软件项目团队成员进行角色和岗位的划分
- C# 系统环境变量读取
- c语言程序设计实验实训教程公众号,C语言程序设计基础知道答案公众号
- 【BZOJ4300】绝世好题,位运算相关DP
- FilterAttribute过滤器的 执行顺序
- Bailian4137 最小新整数【Ad Hoc】
- 仿射解密c语言程序实验报告,仿射加密解密 - 依姆哣特的个人空间 - OSCHINA - 中文开源技术交流社区...
- 简单总结手机app测试,弱网测试
- vscode extensions
- 三星SOC的显示控制器及framebuffer驱动s3c-fb.c中probe函数分析
- python 实现dcmtk关联pacs功能 推送下拉影像
- 抽签抽奖小程序小工具(jquery+html)只需浏览器运行xlsx.core.min.js
- 快速找出bug的几点建议
- 中考考试的指令广播_2016中招考试广播指导语
- 2022年全球程序员收入报告出炉:国内程序员人均56w年薪。。网友说:我拖后腿了!...
- TINA导入Ti官网器件
- 从零开始搭建仿抖音短视频APP-后端开发粉丝业务模块(2)
- 笔记1之极大值分布问题
- C#扩展(2):Random的扩展
- SSM配置地狱?一篇整合模板迅速解决!【建议收藏】