欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

scala基础教程之-数据类型

程序员文章站 2022-05-13 09:50:25
...

一、基本的数据类型

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



scala基础教程之-数据类型
            
    
    博客分类: scala scala 数据类型Arraylistmap 
 
 

二、数组类型

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