Scala学习笔记(三) - 基础类型
2015-05-22 19:35
330 查看
Scala中的类型相对于Java来说,与.net的想法更为接近,所有的类型都是基于一个基础类型,包括值类型也是继承自该类型;
Java中值类型是语言直接提供的,这点上有点不同;
类型关系图如下:
其中所有类型的基类与Any
Any之后分为两个AnyVal与AnyRef
其中AnyVal是所有值类型的父类型
AnyRef是所有引用类型的父类型
与其他语言稍微有点不同的是,Scala还定义了底类型
其中Null类型是所有引用类型的底类型,及所有AnyRef的类型的空值都是Null
而Nothing是所有类型的底类型,对应Any类型
Null与Nothing都表示空,这个大家一看就明白了吧。
在基础类型中只有String是继承自AnyRef的,与Java、.net一样,Scala中的String也是内存不可变对象,这就意味着,所有的字符串操作都会产生新的字符串。
其他的基础类型如Int等都是Scala包装的类型,例如Int类型对应的是Scala.Int只是Scala包会被每个源文件自动引用,看上去Int类型就像是直接内置在语言中一样。
这些基础类型的定义的范围与大小同Java、.net一致,所以不再赘述。
Java中值类型是语言直接提供的,这点上有点不同;
类型关系图如下:
其中所有类型的基类与Any
Any之后分为两个AnyVal与AnyRef
其中AnyVal是所有值类型的父类型
AnyRef是所有引用类型的父类型
与其他语言稍微有点不同的是,Scala还定义了底类型
其中Null类型是所有引用类型的底类型,及所有AnyRef的类型的空值都是Null
而Nothing是所有类型的底类型,对应Any类型
Null与Nothing都表示空,这个大家一看就明白了吧。
在基础类型中只有String是继承自AnyRef的,与Java、.net一样,Scala中的String也是内存不可变对象,这就意味着,所有的字符串操作都会产生新的字符串。
其他的基础类型如Int等都是Scala包装的类型,例如Int类型对应的是Scala.Int只是Scala包会被每个源文件自动引用,看上去Int类型就像是直接内置在语言中一样。
这些基础类型的定义的范围与大小同Java、.net一致,所以不再赘述。
相关文章推荐
- scala学习笔记一(基础,安装及数据类型)
- Scala学习笔记(一) 基础类型
- 黑马程序员--Java基础学习笔记【数组操作、基本数据类型包装类】
- Fortran学习笔记1——基础知识(数据基本类型及其运算)
- Python3学习笔记【基础1--数据类型,运算符】
- HTML&CSS基础学习笔记4-定义文档类型
- SpringMVC + Spring + MyBatis 学习笔记:提交数据遭遇基础类型和日期类型报400错误解决方法
- Scala学习笔记--正则表达式基础知识、如何在scala内使用
- Scala学习笔记之二--基本数据类型
- Python3学习笔记(1)——基础和数据类型
- 快学scala(第二版)学习笔记-1.基础
- Scala学习笔记:Scala语法基础
- Scala入门(一),基础函数学习笔记
- ruby学习笔记-基础数据类型
- Python学习笔记(一):基础语法、变量类型、运算符(快速入门篇)
- 快学Scala学习笔记及习题解答(1-4基础、控制、函数、数组、元组和映射)
- Go学习笔记之基础数据类型
- Scala学习笔记(二) ---- 基础简述
- iOS学习笔记之-C语言基础02(关键字、标识符、注释、数据类型)
- C#学习笔记之类型基础