`

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
分享到:
评论

相关推荐

    scala-SDK-4.7.0-vfinal-2.12-macosx.cocoa.x86_64

    对于初学者,推荐通过创建一个新的Scala项目来熟悉环境,并利用IDE的教程和示例来学习语言基础。对于有经验的开发者,可以直接开始编写Scala代码,利用其强大的特性和库来构建复杂的应用系统。 总的来说,Scala SDK...

    spark-Scala-介绍-教程-入门-手册-调研1

    **Scala基础知识** 1. **变量声明与初始化** 在Scala中,声明变量的同时必须对其进行初始化,否则变量会被认为是抽象的,无法编译。例如: ```scala var myVar = "Initialized Value" ``` 如果不指定变量的...

    Scala-学习资料-mht.rar

    在MHT文件中,你可能会找到关于这些概念的教程、示例代码或者讲解,帮助你从基础到进阶逐步掌握Scala。学习过程中,建议先了解基本语法,然后通过编写简单的程序实践,再逐步接触更复杂的特性和框架。同时,参与开源...

    scala 教程

    - 基本数据类型(整型、浮点型、字符型、字符串、布尔型)。 - 文本处理。 - 操作符和方法(数学运算、关系和逻辑操作、位操作符)。 - 对象相等性的比较。 - 操作符的优先级和关联性。 #### 四、总结 通过...

    scala教程-twitter

    Scala 的函数式编程模型非常强大,提供了很多有用的特性,如 Case 类模拟代数数据类型、Options、模式匹配、偏函数、解构绑定、惰性赋值、传名调用、flatMap 等。这些特性可以帮助我们编写更加简洁和高效的代码。 ...

    scala-2.13.8 解压安装版

    4. **库和框架**:Scala是许多流行框架的基础,如Play Framework(用于Web开发)、Apache Spark(大数据处理)和Akka(并发和分布式计算)。这些框架使得开发高效、可扩展的应用变得容易。 5. **编译器和IDE支持**...

    Scala 专题教程 - Extractor-内含源码以及设计说明书(可以自己运行复现).zip

    `0.Scala 专题教程之 Extractor.md` 文件很可能是这个教程的详细讲解,包括如何创建和使用Extractor的示例,以及设计思路和注意事项。通过阅读这份教程,你可以更深入地了解Extractor的用法,并动手实践以巩固知识。...

    scala-2.12.6.tgz

    Scala的类型系统是其强大的特性之一,它允许定义类型别名、类型推断、泛型以及类型安全的集合。这种类型系统在保持代码安全性的同时,提供了高度的灵活性。 8. 函数式编程: Scala对函数式编程的支持使其成为函数...

    scala中文教程(java 平台开发语言 scala 简单教程)

    2. **基本类型和操作**:Scala支持各种基本数据类型,如Int、Double等,并提供了一系列的操作符和方法来进行数值计算。 3. **函数式对象**:Scala允许将函数视为一等公民,可以将其赋值给变量、作为参数传递给其他...

    scala讲解笔记 入门及进阶 PDF文档1-5

    在这里,你会学习到Scala的安装与环境配置,理解Scala的基本语法,包括变量声明、数据类型(如基本类型、引用类型和集合类型)、控制结构(如条件语句和循环)以及函数定义和调用。此外,还会介绍Scala中的模式匹配...

    Scala编程实战基础教程

    总的来说,Scala编程实战基础教程将引导你探索这门语言的各个方面,包括基本语法、类型系统、函数式编程、并发模型以及在大数据领域的应用。通过深入学习和实践,你不仅可以掌握Scala,还能为从事大数据分析和分布式...

    scala 中文教程下载

    - 基本数据类型(整型、浮点型、字符、字符串、布尔型)。 - 文本表示法。 - 数学运算符。 - 关系和逻辑操作。 - 位操作符。 - 对象相等性的判断。 - 操作符的优先级和结合性。 - 富包装器(Rich Wrapper)...

    Scala语法简明教程

    #### Scala基础语法 - **变量声明**: - Scala中声明变量使用`val`(用于不可变变量)或`var`(用于可变变量)。与Java相比,Scala更简洁,例如,`var age = 28`。 - **常量声明**: - 使用`val`关键字声明常量...

    scala语言教程及规范

    2. **对象和类**:在Scala中,一切都是对象,包括基本数据类型。类可以通过`class`关键字定义,可以包含字段和方法。Scala的类可以继承其他类,但只能单继承。为了解决多重继承问题,Scala引入了特质,可以被多个类...

    scala入门教程pdf

    1. **基础语法**:包括变量声明、数据类型(如基本类型、引用类型、集合)、操作符和控制结构(如条件语句、循环)。 2. **类与对象**:Scala中的类和对象是面向对象编程的核心。它支持单例对象和类的继承,以及...

    scala-2.7.5.final

    这个压缩包包含的文档部分,可能是Scala的用户手册、API文档或者是教程,对于学习和理解Scala的语法、类库以及编程模式至关重要。这些文档可以帮助开发者快速上手,了解如何使用各种函数、类和特质,以及如何利用...

    scala-423-n

    通过"scala-423-n"这个主题,我们可以推测可能的学习内容包括Scala的基础语法、面向对象和函数式编程的结合使用、并发编程、集合API的深入理解和使用,以及如何使用Scala进行大数据分析和处理。文件列表中的"Scala...

    无涯教程(LearnFk)-Scala教程完整离线版.pdf

    2. 函数式编程:Scala 同时提供了强大的函数式编程支持,包括无副作用的函数、高阶函数(函数可以作为参数传递和返回值)、持久数据结构、模式匹配、泛型类型、隐式转换和自动的类型推导等。 3. 静态类型:Scala 是...

    rock-the-jvm-scala-beginners:Scala基础

    1. **基础语法**:Scala的基础语法与Java有很多相似之处,比如类、对象和包的定义。但Scala也引入了一些新的概念,例如case类,它们简化了数据结构的创建,常用于模式匹配。另外,Scala的函数是一等公民,可以直接...

Global site tag (gtag.js) - Google Analytics