千家信息网

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

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,好程序员大数据学习路线分享Scala系列之基础篇了解Scala1.1 什么是 ScalaScala 是 Scalable Language 的简写,是一门多范式的编程语言。Scala设计的初衷是要集成
千家信息网最后更新 2025年12月03日好程序员大数据学习路线分享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安全错误 数据库的锁怎样保障安全 x3450服务器cpu 达梦数据库的市场运营 软件开发 曲面显示器 监控系统服务器怎样关机 西城区信息网络技术服务哪家好 视频评论数据库表 河东区信息网络技术售后服务 如何登录git服务器 dell服务器r520 net连接数据库 嘉兴java软件开发要求 街道网络安全工作责任分工 互联网与哪些新科技有关 网络安全和信息化培训班心得 公司网络安全价格信息 软件开发项目交源代码吗 《云数据中心网络技术》 已有一台服务器怎样搭建云机房 交大网络安全专业就业方向 网络图书馆数据库资源在哪个位置 浦东新区品牌数据库系统销售好处 计算机网络技术英语专用语 运用gis技术建数据库 华为5g手机加华为云服务器 免费外国服务器地址 虹口区网络技术开发材料 vb可视化是软件开发吗 数据库常见威胁有哪些 今穗北京网络技术有限公司 高科技道德与法制展厅软件开发
0