首页 > 其他 > 详细

scala基础教程之-数据类型

时间:2016-01-13 02:14:17      阅读:201      评论:0      收藏:0      [点我收藏+]

一、基本的数据类型

数据类型 描述
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中的封装类的形式存在,同时存在一套富类型的数据类型,如下所示:



bubuko.com,布布扣
?
?

二、数组类型

数组的所有元素只能存放相同的数据类型的数据,分为定长数组(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编程》

scala基础教程之-数据类型

原文:http://daizj.iteye.com/blog/2269988

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!