一、基本的数据类型
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编程》
相关推荐
对于初学者,推荐通过创建一个新的Scala项目来熟悉环境,并利用IDE的教程和示例来学习语言基础。对于有经验的开发者,可以直接开始编写Scala代码,利用其强大的特性和库来构建复杂的应用系统。 总的来说,Scala SDK...
**Scala基础知识** 1. **变量声明与初始化** 在Scala中,声明变量的同时必须对其进行初始化,否则变量会被认为是抽象的,无法编译。例如: ```scala var myVar = "Initialized Value" ``` 如果不指定变量的...
在MHT文件中,你可能会找到关于这些概念的教程、示例代码或者讲解,帮助你从基础到进阶逐步掌握Scala。学习过程中,建议先了解基本语法,然后通过编写简单的程序实践,再逐步接触更复杂的特性和框架。同时,参与开源...
- 基本数据类型(整型、浮点型、字符型、字符串、布尔型)。 - 文本处理。 - 操作符和方法(数学运算、关系和逻辑操作、位操作符)。 - 对象相等性的比较。 - 操作符的优先级和关联性。 #### 四、总结 通过...
Scala 的函数式编程模型非常强大,提供了很多有用的特性,如 Case 类模拟代数数据类型、Options、模式匹配、偏函数、解构绑定、惰性赋值、传名调用、flatMap 等。这些特性可以帮助我们编写更加简洁和高效的代码。 ...
4. **库和框架**:Scala是许多流行框架的基础,如Play Framework(用于Web开发)、Apache Spark(大数据处理)和Akka(并发和分布式计算)。这些框架使得开发高效、可扩展的应用变得容易。 5. **编译器和IDE支持**...
`0.Scala 专题教程之 Extractor.md` 文件很可能是这个教程的详细讲解,包括如何创建和使用Extractor的示例,以及设计思路和注意事项。通过阅读这份教程,你可以更深入地了解Extractor的用法,并动手实践以巩固知识。...
Scala的类型系统是其强大的特性之一,它允许定义类型别名、类型推断、泛型以及类型安全的集合。这种类型系统在保持代码安全性的同时,提供了高度的灵活性。 8. 函数式编程: Scala对函数式编程的支持使其成为函数...
2. **基本类型和操作**:Scala支持各种基本数据类型,如Int、Double等,并提供了一系列的操作符和方法来进行数值计算。 3. **函数式对象**:Scala允许将函数视为一等公民,可以将其赋值给变量、作为参数传递给其他...
在这里,你会学习到Scala的安装与环境配置,理解Scala的基本语法,包括变量声明、数据类型(如基本类型、引用类型和集合类型)、控制结构(如条件语句和循环)以及函数定义和调用。此外,还会介绍Scala中的模式匹配...
总的来说,Scala编程实战基础教程将引导你探索这门语言的各个方面,包括基本语法、类型系统、函数式编程、并发模型以及在大数据领域的应用。通过深入学习和实践,你不仅可以掌握Scala,还能为从事大数据分析和分布式...
- 基本数据类型(整型、浮点型、字符、字符串、布尔型)。 - 文本表示法。 - 数学运算符。 - 关系和逻辑操作。 - 位操作符。 - 对象相等性的判断。 - 操作符的优先级和结合性。 - 富包装器(Rich Wrapper)...
#### Scala基础语法 - **变量声明**: - Scala中声明变量使用`val`(用于不可变变量)或`var`(用于可变变量)。与Java相比,Scala更简洁,例如,`var age = 28`。 - **常量声明**: - 使用`val`关键字声明常量...
2. **对象和类**:在Scala中,一切都是对象,包括基本数据类型。类可以通过`class`关键字定义,可以包含字段和方法。Scala的类可以继承其他类,但只能单继承。为了解决多重继承问题,Scala引入了特质,可以被多个类...
1. **基础语法**:包括变量声明、数据类型(如基本类型、引用类型、集合)、操作符和控制结构(如条件语句、循环)。 2. **类与对象**:Scala中的类和对象是面向对象编程的核心。它支持单例对象和类的继承,以及...
这个压缩包包含的文档部分,可能是Scala的用户手册、API文档或者是教程,对于学习和理解Scala的语法、类库以及编程模式至关重要。这些文档可以帮助开发者快速上手,了解如何使用各种函数、类和特质,以及如何利用...
通过"scala-423-n"这个主题,我们可以推测可能的学习内容包括Scala的基础语法、面向对象和函数式编程的结合使用、并发编程、集合API的深入理解和使用,以及如何使用Scala进行大数据分析和处理。文件列表中的"Scala...
2. 函数式编程:Scala 同时提供了强大的函数式编程支持,包括无副作用的函数、高阶函数(函数可以作为参数传递和返回值)、持久数据结构、模式匹配、泛型类型、隐式转换和自动的类型推导等。 3. 静态类型:Scala 是...
1. **基础语法**:Scala的基础语法与Java有很多相似之处,比如类、对象和包的定义。但Scala也引入了一些新的概念,例如case类,它们简化了数据结构的创建,常用于模式匹配。另外,Scala的函数是一等公民,可以直接...