`

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编程》

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics