千家信息网

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

发表于:2024-11-15 作者:千家信息网编辑
千家信息网最后更新 2024年11月15日,好程序员大数据学习路线分享Scala系列之基础篇了解Scala1.1 什么是 ScalaScala 是 Scalable Language 的简写,是一门多范式的编程语言。Scala设计的初衷是要集成
千家信息网最后更新 2024年11月15日好程序员大数据学习路线分享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安全错误 数据库的锁怎样保障安全 可远程管理的网站用服务器 做软件开发可以拍照吗 无锡工业软件开发公司 关于网络安全的视频演讲 我的世界天空云空岛服务器 徐汇区信息网络技术口碑推荐 江苏自动网络技术价格表格 上海耘恪互联网科技有限公司 数据库主码可不可以重复 古典文学下载软件开发 郑州应用软件开发大概要多少钱 苹果邮箱服务器端口怎么 网络安全与民族文化继承 互联网是科技成果服务 手机令牌服务器时间对不上 网络技术综合题论述题 专门处理计算机网络安全 数据库安全防线 驱蚊软件开发 2022年网络安全检查自查表 杭州刀塔网络技术 达梦数据库导出数据命令 网上免费学习网络安全 软件开发测试抑郁症诊断书 widows文件管理服务器 网络技术综合题论述题 临沂创海网络技术有限公司 传感器网络安全问题涉及 宁乡科钉网络技术有限公司 远图互联网科技怎么样工作
0