Scala入门教程(上)

简介: Scala入门教程(上)

0x00 教程内容


Scala 基础概念、Scala 交互式命令行

Scala 基础语法:值、标识符、注释、数据类型等

Scala 数据类型、常量、变量

Scala 基本函数、局部应用、柯里化函数

Scala 的可变长度参数、类、构造函数、继承

Scala的重载方法、抽象类、特质、集合等

由于是快速入门,所以把一些难点内容忽略了,只把最基础和常用的知识点列举出来,更多学习可以参考Scala官网的指南:Scala Tutorial 。


学习前提:需要先安装好Scala的运行环境,教程有很多,可自行在网上搜索。

邵奈一教程:分布式集群环境之Scala的安装与配置(Centos7)


0x01 Scala 理论


1. Scala 基本概念

Scala是一门多范式的编程语言,一种类似java的编程语言 [1] ,设计初衷是实现可伸缩的语言 [2] 、并集成面向对象编程和函数式编程的各种特性。——摘自百度百科


a. Scala 的特点


主要有:面向对象、函数式编程、静态类型、扩展性、并发性等等,Scala代码是运行于 JVM(Java 虚拟机)上的,可以跟 Java 代码无缝兼容。Scala与Java语言类似,如果有Java基础,学习起Scala语言是比较顺手的,特别是在Java8上引入了Lambda 表达式新特性,与Scala的函数式编程语言就更加相似了。


b. Scala 的地位

分布式计算引擎 Spark 主要是由 Scala 编写而成,其中有小部分的 Java ;分布式流处理平台 Kafka 和分布式处理引擎 Flink 也是由 Scala 和 Java编写的;学会 Scala 编程是大数据领域必备的技能。


2. Scala 交互式命令行

想要执行Scala代码可以通过交互式命令方式进行,与 MySQL、Python 等类似。

如果在你本地电脑上安装好了Scala,可以直接运行,如Windows系统:


image.png


如果配置了环境变量,也可以直接在运行界面上输入scala,然后进入执行界面。

输入简单的代码:

scala> 1 + 1
res0: Int = 2
scala>


代码解释:res0 是解释器自动创建的变量,是表达式的计算结果。类型为 Int ,值为 2。

在Linux或者Mac也一样,直接输入scala即可进入交互式命令行模式:


image.png


退出只需要按 Ctrl + D 即可。


0x03 Scala 基本语法


在 Scala 命令行中执行的好处是简单方便,可以快速得到结果,还可以看到返回的类型,如上面的1+1运算,可以看到返回的结果为Int类型,对于初学者比较友好,所以我们接下来主要是在命令行中执行。

1. 基础语法
def HelloWorld() {
    println("Hello, shaonaiyi!") 
}
HelloWorld()


复制过去,然后回车,即可显示如下结果:

image.png


解释:


Scala 语句末尾是不需要分号(;)结束的,当然加也可以;Java 是要以分号(;)结束。

def main(args: Array[String]),main 方法是 Scala 程序的入口,与 Java 一样,每个 Scala 程序都必须定义的。

提示:


如果输入错了,可以多按几个回车键退出,然后重新输入。

2. 标识符

对象,类,变量和方法的名称称为标识符。


字母数字标识符

关键字不能用作标识符,标识符区分大小写。


在 Scala 中标识符只能包括字符、数字和下划线,并且只能以字符和下划线开头,如:hi、_shao、naiyi_888等等。


$字符是Scala中的保留关键字,不应在标识符中使用。


image.png


2. 运算符标识符


运算标识符由一个或多个运算符组成,运算符是可以打印的 ASCII 码,比如:+、*、-、/、?、:、~等等。


运算标识符有:+、++、:::、<?>、:>等等。


混合标识符

混合标识符由一个字符数字标识符、下划线和一个运算标识符组成,比如:unary_+、var_=。在这里,unary_+定义了一个一元+运算符,myvar_=用来作为方法名称定义了一个赋值运算符。


文字标识符

用``(键盘左上角数字1左边按键)符号包含任意字符都是文字标识符,如:


`shaonaiyi`

3. 注释

Scala 中的注释和 Java 中的注释一样:


object HelloWorld {
    /*
     * 这是块注释
     * 这是块注释
     */
    def main(args: Array[String]) {
        // 这是行注释
        println("Hello, shaonaiyi")
    }
}


4. 数据类型

Scala 中的数据类型和 Java 完全一样,占用内存和精度也一样。如下表:

image.png


说明:上表列出的数据类型都是对象,Scala没有Java中的原生类型,在Scala是可以对数字等基础类型调用方法的。

5. 常量和变量

使用val声明常量(也称为),使用var声明变量。如:

scala> val a = 1
a: Int = 1
scala> a = 2
<console>:12: error: reassignment to val
       a = 2
         ^
scala> var name = "shaonaiyi"
name: String = shaonaiyi
scala> name = "shaonaiyi888"
name: String = shaonaiyi888
scala> name
res2: String = shaonaiyi888


解释:

  • 用val申明的a是常量,不能重新被赋值,否则会报错。
  • 用var申明的name是变量,可以重新被赋值。
相关文章
|
5月前
|
分布式计算 Java Hadoop
Scala入门必刷的100道练习题(附答案)
Scala入门必刷的100道练习题(附答案)
655 1
|
5月前
|
Java 大数据 Scala
Scala入门【运算符和流程控制】
Scala入门【运算符和流程控制】
|
2月前
|
分布式计算 大数据 Java
Scala 入门指南:从零开始的大数据开发
Scala 入门指南:从零开始的大数据开发
|
3月前
|
分布式计算 大数据 Java
大数据开发语言Scala入门
大数据开发语言Scala入门
|
3月前
|
IDE 大数据 Java
「AIGC」大数据开发语言Scala入门
Scala,融合OOP和FP的多范式语言,在JVM上运行,常用于大数据处理,尤其与Apache Spark配合。要开始学习,安装Scala,选择IDE如IntelliJ。基础包括变量、数据类型、控制结构、函数。Scala支持类、对象、不可变数据结构、模式匹配和强大的并发工具。利用官方文档、教程、社区资源进行学习,并通过实践提升技能。
50 0
|
5月前
|
Java Shell API
Scala入门【变量和数据类型】
Scala入门【变量和数据类型】
|
安全 Java 编译器
Scala语言入门:初学者的基础语法指南
作为一种在Java虚拟机(JVM)上运行的静态类型编程语言,Scala结合了面向对象和函数式编程的特性,使它既有强大的表达力又具备优秀的型态控制
82 0
|
JavaScript 前端开发 Java
Scala语言入门以及基本语法
Scala语言入门以及基本语法
|
分布式计算 Java 程序员
spark开发基础之从Scala符号入门Scala
spark开发基础之从Scala符号入门Scala
172 0
spark开发基础之从Scala符号入门Scala