scala基础教程之-数据类型
一、基本的数据类型
Byte | 8位有符号值。范围从-128到127 |
Short | 16位有符号值。范围从-32768至32767 |
Int | 32 位有符号值。范围从 -2147483648 to 2147483647 |
Long | 64位有符号值。 从-9223372036854775808到9223372036854775807 |
Float | 32位IEEE754单精度浮点数 |
Double | 64位IEEE754双精度浮点数 |
Char | 16位无符号Unicode字符。范围由U+0000至U+FFFF |
String | 字符序列 |
Boolean | 无论是字面true或false字面 |
Unit | 对应于没有值 |
Null | 空或空引用 |
Nothing | 每一个其他类型的子类型; 包括无值 |
Any | Any类型的超类型;任何对象是任何类型 |
AnyRef | 任何引用类型的超类型 |
scala的数据类型的java的类型的基本一样,区别就是对于java的原始数据类型在scala中是以像java中的封装类的形式存在,同时存在一套富类型的数据类型,如下所示:
二、数组类型
数组的所有元素只能存放相同的数据类型的数据,分为定长数组(Array)和变长数组(ArrayBuffer),数组的值是可变的,所以数组是可变的同类对象序列。
1、定长数组初始化两种方式:
a) val testArray = new Array[int](3)
testArray(0) = 0;
testArray(1) = 1;
testArray(2) = 2;
b) val testArray = Array(0,1,2)
2、变长数组的使用
a) val bufferArray = ArrayBuffer(1,2,3)
b) val bufferArray = new ArrayBuffer[Int]()
bufferArray += 0
bufferArray += 1
bufferArray += 2
scala> bufferArray
res38: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(0, 1, 2)
c) 通过 += 操作符来添加元素或序列,++= 操作符来拼接数组
3、多维数组
valmatrix=Array.ofDim[Double](3,4)
4、数组的长度
bufferArray.size或bufferArray.length
5、定长数组和变长数组的转换
val toBuffer = testArray.toBuffer
val toArray = bufferArray .toArray
三、列表(List)
列表是不可变的同类对象序列
列表变量定义时,不能通过右边方式定义: val testList = new List[Int]();
只能通过此方式定义: val testList = List[int](0,1,2)
四、元组
元组是不同类型的值的聚集,其值是不可变。
a) 元组的定义
var testTuple = (1,"boy",3.5)
scala> var testTuple = (1,"boy",3.5)
testTuple: (Int, String, Double) = (1,boy,3.5)
b) 元组的访问:是通过元组名+‘.’+访问元素的下标
scala> testTuple._1
res48: Int = 1
注意:元组的下标是从1开始
五、集合(Set)
Set是不包含重复数据,可支持不同类型对象的集合.
a) 定义
scala> val testSet = Set(123,456,"123")
testSet: scala.collection.immutable.Set[Any] = Set(123, 456, 123)
b) 常用方法
head | 此方法返回集合的第一个元素。 |
tail | 该方法返回集合由除第一个以外的所有元素。 |
isEmpty | 如果设置为空,此方法返回true,否则为false。 |
六、映射(Map)
Scala中的映射是键/值对的集合。任何值可以根据它的键进行检索。键是在映射唯一的,但值不一定是唯一的。映射也被称为哈希表。有两种类型的映射,不可变以及可变的。可变和不可变的对象之间的区别在于,当一个对象是不可变的,对象本身不能被改变
a)初始化
scala> var testMap:Map[Int,String] = Map[Int, String]();
testMap: Map[Int,String] = Map()
scala> testMap += (1 -> "11")
scala> testMap
res65: Map[Int,String] = Map(1 -> 11)
scala> val colors = Map("red" -> "#FF0000", "azure" -> "#F0FFFF")
colors: scala.collection.immutable.Map[String,String] = Map(red -> #FF0000, azure -> #F0FFFF)
b)访问
scala> testMap(1)
res66: String = 11
keys | 这个方法返回一个包含映射中的每个键的迭代。 |
values | 这个方法返回一个包含映射中的每个值的迭代。 |
isEmpty | 如果映射为空此方法返回true,否则为false。 |
可以使用++运算符或映射。++()方法来连接两个或更多的映射,但同时增加了映射,将删除重复的键
c) 打印
scala> colors.keys.foreach{i => print("key="+i); print(" value="+colors(i))}
key=red value=#FF0000key=azure value=#F0FFFF
这些是基本的类型及操作,更详细的使用说明待后期增加!
参考资料:
http://www.yiibai.com/scala/scala_maps.html
《Scala编程》
上一篇: 处暑吃什么糕点?有什么糕点好吃?
下一篇: 网页内容优化之关键词布局