做兼职的网站有哪些工作内容网站建设制作模板
在之前的文章中,我们学习了如何在Linux安装Spark以及Scala,想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢。
Spark及Scala的安装
https://blog.csdn.net/qq_49513817/article/details/136499998?spm=1001.2014.3001.5501
这篇文章,我会从Scala基础开始,带着大家一起实战,一起学习。为了方便,我这边用的是win的Scala。
目录
一、win版Scala下载配置
1.Scala下载
2.环境变量配置
3.启动Scala
二、常量、变量、简单函数
1.定义常量
2.定义变量
3.定义数组
(1 数组
(2 数组操作方法
(3 创建区间数组
三、九九乘法表
拓展
一、Scala数据类型
基本数据类型
复合数据类型
二、Scala运算符
一、win版Scala下载配置
1.Scala下载
Scala官网地址
https://www.scala-lang.org/download/all.html
我这边选用的版本是2.12.15,大家按需下载。


2.环境变量配置




3.启动Scala
桌面win+r,输入cmd

输入scala

出现Scala即成功
二、常量、变量
1.定义常量
在Scala语言中,使用val关键字来定义一个常量(常量:常量是指一旦赋值后就不能再被修改的量)。

可以看到我们使用了val来定义一个常量,其中x1到x4是我们的常量名称,后面是我给它们赋的值,其中,值的数据类型是Scala自此定义的,因此我们也知道了Scala的特点之一(如果不指定变量的类型,Scala会自动生成)。
现在,我们来试试自己定义数据类型

现在,我们定义了一个常量x5,它的值是int类型的666,细心的朋友可能看出来了,我上面有个报错,那是因为Scala语言有严格的书写规范,在这里,Int的i要大写。
val x1=1val x2=1.5val x3=x1+x2val x4=1+1.5val x5:Int=666
2.定义变量
在Scala语言中,使用var关键字来定义一个变量。(变量:变量是用于存储数据的一种引用,可以存储任何类型的数据,如整数、浮点数、字符串、布尔值等,在存储过程中可以发生改变的量。)

和上面的方法很像,就是改变了一个字母而已,快来试试吧
var r1=8var r2=88.8var r3=88.8+8var r4=r1+r2
3.定义数组
(1 数组
在Scala中,定义数组主要有两种方式
第一种:

可以看到,我们定义了两个数组。一个名为sz1,包含了1到5,另一个名为sz2,包含了两个字符串,一个“Hello”,一个“World”
第二种:

使用这种方式,Scala会现在里面赋默认值Null值,也就是空值,再随后并随后给它的三个元素分别赋了值,现在来试试吧
val sz1 = Array(1, 2, 3, 4, 5)val sz2 = Array("Hello", "World")val sz3: Array[String] = new Array[String](3)sz3(0) = "haha"sz3(1) = "hehe"sz3(2) = "heihei"
(2 数组操作方法
| 操作 | 描述 | 示例 |
|---|---|---|
| 创建数组 | 使用Array类创建数组 | val arr = Array(1, 2, 3) |
| 数组长度 | 使用length或size属性获取数组长度 | val length = arr.length |
| 最大值 | 使用max方法获取数组中的最大值 | val maxVal = arr.max |
| 最小值 | 使用min方法获取数组中的最小值 | val minVal = arr.min |
| 排序 | 使用sorted方法对数组进行升序排序 | val sortedArr = arr.sorted |
| 数组连接 | 使用++操作符连接两个数组 | val concatenated = arr1 ++ arr2 |
| 转换为列表 | 使用toList方法将数组转换为列表 | val list = arr.toList |
| 转换为集合 | 使用toSet方法将数组转换为集合(去除重复元素) | val set = arr.toSet |
| 查找元素 | 使用exists方法检查数组是否包含元素x | arr.exists(_ == "x") |
(3 创建区间数组
创建区间数组,只需要使用range()函数,但再此之前,我们先要导入包。

这样,我们就得到了一个1到10,每隔2一次的区间数组
import Array._val sz4 = range(1,10,2)
三、九九乘法表
用Scala完成一个九九乘法表的实现。

其中
object jjcfb 定义一个名为jjcfb的类函数
def nb() = 定义名为nb的函数
for (i <- 1 to 9)
for (j <- 1 to i) 嵌套遍历循环
print(s"$j*$i=${i*j}\t") 输出i*j的值,并对齐输出\t制表符
println() //每行结束后换行
object jjcfb {def nb() = {for (i <- 1 to 9) {for (j <- 1 to i) {print(s"$j*$i=${i*j}\t")}println()}}}
拓展
一、Scala数据类型
基本数据类型
Byte: 8 位有符号整数Short: 16 位有符号整数Int: 32 位有符号整数Long: 64 位有符号整数Float: 32 位 IEEE 754 单精度浮点数Double: 64 位 IEEE 754 双精度浮点数Char: 16 位 Unicode 字符Boolean: 逻辑值,可以是true或falseUnit: 表示没有具体的值,类似于 Java 中的void(但Unit有一个唯一的实例值())Nothing: 是所有其他类型的子类型,没有实例Null:null值的类型,是Nothing的一个实例
复合数据类型
- 元组(Tuples): 元组是不同类型值的集合。例如,
(1, "hello")是一个包含整数和字符串的二元组。 - 数组(Arrays): 类似于 Java 中的数组,用于存储同类型的对象集合。
- 列表(Lists): 可变长度的有序元素集合。Scala 中的列表是不可变的,但可以通过操作生成新的列表。
- 集合(Sets): 无序且不包含重复元素的集合。
- 映射(Maps): 存储键值对的集合,其中键是唯一的。
- 字符串(Strings): 字符序列。Scala 中的字符串是不可变的。
二、Scala运算符
| 运算符 | 描述 | 示例 |
|---|---|---|
| 算术运算符 | 用于执行基本的数学运算 | |
| + | 加法 | val peng = 5 + 3 |
| - | 减法 | val peng = 5 - 3 |
| * | 乘法 | val peng = 5 * 3 |
| / | 除法 | val peng = 5 / 3 |
| % | 取模(求余数) | val peng = 5 % 3 |
| 关系运算符(比较运算符) | 用于比较两个值 | |
| == | 等于 | val peng = 5 == 3 |
| != | 不等于 | val peng = 5 != 3 |
| > | 大于 | val peng = 5 > 3 |
| < | 小于 | val peng = 5 < 3 |
| >= | 大于或等于 | val peng = 5 >= 3 |
| <= | 小于或等于 | val peng = 5 <= 3 |
| 逻辑运算符 | 用于组合或否定关系表达式 | |
| && | 逻辑与 | val peng = (5 > 3) && (2 < 4) |
| ! | 逻辑非 | val peng = !(5 < 3) |
| 赋值运算符 | 用于将值赋给变量 | |
| = | 赋值 | var x = 5 |
| += | 加法赋值 | var x = 3; x += 2 |
| -= | 减法赋值 | var x = 5; x -= 3 |
| *= | 乘法赋值 | var x = 2; x *= 3 |
| /= | 除法赋值 | var x = 10; x /= 2 |
| 位运算符 | 对整数的位进行操作 | |
| & | 位与 | val peng = 5 & 3 |
| 位或 | ||
| ^ | 位异或 | val peng = 5 ^ 3 |
| ~ | 位非 | val peng = ~5 |
| << | 左移 | val peng = 5 << 1 |
| >> | 右移 | val peng = 5 >> 1 |
