Scala入门系列(一):Scala基础介绍、开发环境

文章目录

  • 一、Scala介绍
  • 二、安装Scala编译器
  • 三、Scala交互式编程
  • 四、Scala开发环境
  • 五、Scala概述
  • 六、Scala变量与常量
  • 七、Scala数据类型
    • Scala数据类型层次结构
  • 八、Scala循环控制
  • 九、Scala数组
  • 十、Scala元组
  • 十一、Scala集合
    • 1、
    • 2、
      • 2.1不可变集合
      • 2.2可变集合:
    • 3、scala.collection.immutable
    • 4、scala.collection.mutable

一、Scala介绍

Scala源自Java

Scala构建在JVM之上
Scala与Java兼容、互通

Scala的优势

多范式编程:面向对象编程、函数式编程
表达能力强、代码精简

大数据与Scala

Spack采用Scala语言设计
	提供的API更加优雅
	基于JVM的语言更融入Hadoop生态圈

二、安装Scala编译器

下载安装包

https://www.scala-lang.org/download

Scala入门系列(一):Scala基础介绍、开发环境_第1张图片
Scala入门系列(一):Scala基础介绍、开发环境_第2张图片
要求JDK环境

三、Scala交互式编程

Scala入门系列(一):Scala基础介绍、开发环境_第3张图片

四、Scala开发环境

在IntelliJ IDEA中安装Scala插件
Scala入门系列(一):Scala基础介绍、开发环境_第4张图片

五、Scala概述

1、面向对象特性

每个值都是对象,
对象的数据类型和行为由类(Class)和特征(Trait,类似interface)的描述
利用特征实现混入式多重继承

2、函数式编程

每个函数都是一个值
支持高阶函数、柯里化(currying)、样例类(case class)及模式匹配…

3、Scala是静态类型语言
4、扩展性

六、Scala变量与常量

1、变量:赋值后可以改变,生命周期中可以被多从赋值

var i:Int=xxx (一般无需显示指定类型,Scala编译器会自动推断出类型)

2、常量:赋值后不可变,类似于java中final变量

val i:Int=xxx

3、类型别名不多说,想了解可自己查询。

七、Scala数据类型

Scala入门系列(一):Scala基础介绍、开发环境_第5张图片
Scala与java有着相同的原始数据类型

Scala数据类型层次结构

Scala入门系列(一):Scala基础介绍、开发环境_第6张图片

Any:所有类型的超类(顶级类型)
AnyVal:表示值类型的超类
AnyRef:表示引用类型的超类,对应java.lang.Object
Unit:表示无值,类似Java中的void
Nothing:所有类型的子类
Null:表示null或空引用

八、Scala循环控制

Scala入门系列(一):Scala基础介绍、开发环境_第7张图片
Scala入门系列(一):Scala基础介绍、开发环境_第8张图片
Scala入门系列(一):Scala基础介绍、开发环境_第9张图片

九、Scala数组

存储国定大小的元素
数组索引从0开始

//数组创建方式一
var a1:Array[String] = new Array[String](3)(泛型使用方括号)
a1(0)="Jason"(数组元素访问使用圆括号)
a1(1)="Marie"
a1(2)="Jimmy"

//数组创建方式二
var a2=Array("Jason","Marie","Jimmy")(调用Array的伴生对象中的apply()返回Array实列)
//数据创建方式三:区间数组
var a3=Array.range(1,10,2)

十、Scala元组

可以包含不同类型的元素
最多支持22 个元素(Tuple1~Tuple22)
使用下划线 ”_“访问元素,”_1“表示第一个元素

//元组声明方式一
var tp1 = ("Mike", "123 ABC street", 58)
println(tp1._1)
println(tp1._2)
println(tp1._3)
//迭代元组
tp1.productIterator.foreach{ i =>println("Value = " + i )}
//元组声明方式二
var tp2 = new Tuple3("Mike", "123 ABC street", 58)
//元组声明方式三
def mike = "Mike" -> 5
//输出scala.Tuple2
mike.getClass
//将元组元素依次赋给三个变量
val(name, address, age) = tp1
println(name)
println(address)
println(age)

十一、Scala集合

1、

Scala入门系列(一):Scala基础介绍、开发环境_第10张图片

Seq:序列,元素按顺序排列
Set:集合,元素不重复
Map:映射,键值对集合

2、

2.1不可变集合

Scala入门系列(一):Scala基础介绍、开发环境_第11张图片

2.2可变集合:

可变集合:可以修改、添加或移除一个集合的元素
Scala入门系列(一):Scala基础介绍、开发环境_第12张图片

3、scala.collection.immutable

Scala入门系列(一):Scala基础介绍、开发环境_第13张图片

Set:ListSet、HashSet、TreeSet
Map:ListMap、HashMap、TreeMap
Seq:Vector、String、Range、List、Stack、Stream、Queue

4、scala.collection.mutable

Scala入门系列(一):Scala基础介绍、开发环境_第14张图片

你可能感兴趣的:(scala,scala)