二维码
微世推网

扫一扫关注

当前位置: 首页 » 快报资讯 » 今日快报 » 正文

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

放大字体  缩小字体 发布日期:2023-02-02 23:38:49    作者:田忠榆    浏览次数:166
导读

好程序员大数据学习路线分享Scala系列之基础篇了解Scala1.1 什么是 ScalaScala 是 Scalable Language 得简写,是一门多范式得编程语言。Scala设计得初衷是要集成面向对象编程和函数式编程得各种特性。Scala运行于Java平台(Java虚拟机),并兼容现有得Java程序。函数式编程两种理念:就是一种抽象程度很高得编程范式,纯粹

好程序员大数据学习路线分享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地址downloads.lightbend/scala/2.11.12/scala-2.11.12.tgz然后解压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和EA,这两个开发工具都有相应得Scala插件,如果使用Eclipse,直接到Scala自己下载即可scala-ide.org/download/sdk.html。

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

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

2.下载IEDA得scala插件,地址plugins.jetbrains/plugin/1347-scala

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

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没有++,-- 可以用+=,-=代替

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

 
(文/田忠榆)
免责声明
• 
本文仅代表发布者:田忠榆个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,需自行承担相应责任。涉及到版权或其他问题,请及时联系我们删除处理邮件:weilaitui@qq.com。
 

Copyright©2015-2025 粤公网安备 44030702000869号

粤ICP备16078936号

微信

关注
微信

微信二维码

WAP二维码

客服

联系
客服

联系客服:

24在线QQ: 770665880

客服电话: 020-82301567

E_mail邮箱: weilaitui@qq.com

微信公众号: weishitui

韩瑞 小英 张泽

工作时间:

周一至周五: 08:00 - 24:00

反馈

用户
反馈