千家信息网

好程序员大数据学习路线分享Scala系列之基础篇

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,好程序员大数据学习路线分享Scala系列之基础篇了解Scala1.1 什么是 ScalaScala 是 Scalable Language 的简写,是一门多范式的编程语言。Scala设计的初衷是要集成
千家信息网最后更新 2026年11月01日好程序员大数据学习路线分享Scala系列之基础篇

好程序员大数据学习路线分享Scala系列之基础篇了解Scala

1.1 什么是 Scala

Scala 是 Scalable Language 的简写,是一门多范式的编程语言。

Scala设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序。

函数式编程两种理念:就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数,只要输入是确定的,输出就是确定的,这种纯函数我们称之为没有副作用。而允许使用变量的程序设计语言,由于函数内部的变量状态不确定,同样的输入,可能得到不同的输出,因此,这种函数是有副作用的。

函数式编程的一个特点就是,函数也是值,同允许把函数本身作为参数传入另一个函数,还允许返回一个函数!


1.2 Scala特点

Scala 是面向对象的

Scala是一个纯面向对象的语言,所有的值都是对象,类和对象行为用类和特质来描述.

Scala 是函数式的

Scala中函数是高等公民,所有函数都是值.

Scala是静态类型的


Scala 是可扩展的

1.3 为什么要学Scala

1.优雅:这是框架设计师第一个要考虑的问题,框架的用户是应用开发程序员,API是否优雅直接影响用户体验。

2.速度快:Scala语言表达能力强,一行代码抵得上Java多行,开发速度快;Scala是静态编译的,所以和JRuby,Groovy比起来速度会快很多。

3.能融合到Hadoop生态圈:Hadoop现在是大数据事实标准,Spark并不是要取代Hadoop,而是要完善Hadoop生态。JVM语言大部分可能会想到Java,但Java做出来的API太丑,或者想实现一个优雅的API太费劲。


2 环境准备

2.1 JDK安装

因为Scala是运行在JVM平台上的,所以安装Scala之前要安装JDK

2.2 Scala安装

下载Scala然后解压Scala到指定目录

tar -zxvf scala-2.10.6.tgz -C /usr/java

配置环境变量,将scala加入到PATH中

vi /etc/profile

export JAVA_HOME=/usr/java/jdk1.7.0_45

export PATH=$PATH:$JAVA_HOME/bin:/usr/java/scala-2.10.6/bin

2.3. Scala开发工具安装

目前Scala的开发工具主要有两种:Eclipse和IDEA,这两个开发工具都有相应的Scala插件,如果使用Eclipse,直接到Scala官网下载即可。

由于IDEA的Scala插件更优秀,大多数Scala程序员都选择IDEA,可以到下载社区免费版,点击下一步安装即可,安装时如果有网络可以选择在线安装Scala插件。这里我们使用离线安装Scala插件:

1.安装IDEA,点击下一步即可。由于我们离线安装插件,所以点击Skip All and Set Defaul

2.下载IEDA的scala插件

3.安装Scala插件:File -> settings -> Plugins -> Install plugin from disk -> 选择Scala插件 -> OK -> 重启IDEA

3. Scala基础

3.1. 值和变量

使用var 声明一个变量。

  • scala语言是强类型语言。

  • var修饰的变量,内容和引用都可变

使用val声明一个常量或值

  • val修饰的变量是不可变的,注意不可变的不是内容,而是引用;

  • val修饰的变量,相当于Java中final修饰的变量;

  • 只有val修饰的变量才能被lazy修饰;使用lazy定义变量后,只有在调用该变量时才会实例化这个变量的值。而且惰性变量只能是不可变变量;

//变量定义方式
var a:int = 1
var aa = 1
val aaa:Int = 3
val aaaa = 4
lazy val aaaaa = 4

官方推荐使用val。

2.val和var区别示意:

可以使用数组,更容易懂

class A(n: Int) {
var value = n
}

class B(n: Int) {
val value = new A(n)
}

object Test {
def main(args: Array[String]) {
val x = new B(5)
x = new B(6) // 错误?
x.value = new A(6) // 错误?
x.value.value = 6 // 正常
}
}

3.lazy

类似方法,先声明,后调用


4.val or var

在val和var均可的条件下,官方推荐使用val

3.2. 常用类型

Scala和Java一样,有7种数值类型Byte、Char、Short、Int、Long、Float、Double和一个Boolean类型,

和Java不同的是 ,Scala没有基本类型与包装类型之分,这些类型都是类,有自己的属性和方法。

相当于Java的包装类;

1.toString()

1.to (10)

scala类型层级关系:

scala中所有的值都有类型,包括数值和函数.


scala 类型转换:


val x: Long = 987654321
val y: Float = x // 9.8765434E8 (note that some precision is lost in this case)

val face: Char = '☺'
val number: Int = face // 9786

3.3. 操作符

Scala中没有操作符,只是以操作符的格式去进行方法调用。

//数学运算符
+、-、* 、/、%
//关系操作符
> < >= <= !
//逻辑操作符
&& ||
//位操作符
| & ^ ~
//比较对象是否相等
== !=

注意:

a + b 等价于 a.+(b)

Scala没有++,-- 可以用+=,-=代替

操作符都是方法的重载,是方法的调用


函数 变量 类型 插件 语言 操作符 编程 对象 程序 方法 开发 可变 程序员 优雅 就是 工具 开发工具 速度 设计 选择 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技创新与互联网经济 狮子座互联网科技有限公司 上海致骋互联网科技 互联网高科技股票 互联网科技视频素材 甘肃拓世互联网科技有限公司 互联网 科技馆 互联网科技公司招聘 北京三清互联网科技 乌鲁木齐新华智原互联网科技学校 阿里互联网科技企业 沐思想互联网科技有限公司 上海钢联属于互联网科技股吗 互联网时代科技型公司的机会 同城互联网络科技 银川新华互联网科技学校原画 悟空问答互联网科技 安徽九吞吴互联网科技有限公司 瑞安市蟠桃会互联网科技有限公司 互联网科技快速发展优美句子 互联网络科技 互联网公司 科技公司 上海互联网科技有限公司 互联网科技公司电话 济南华为互联网科技产业总部基地 赶超互联网科技 微信多开 美国互联网科技实力 山东子淼互联网科技有限公司 江苏互联网智能科技产品出厂价 互联网 科技节活动 微视频大赛
0