设为首页 加入收藏

TOP

Scala的基本使用(一)
2023-08-06 07:49:31 】 浏览:434
Tags:Scala

@

目录

Scala的基本使用

一、基础语法

1.1 变量

1.1.1 var和val

Scala中的变量分为两种:
可变var:可以随时修改var声明的变量的值
不可变val:val声明的变量,值不能被修改,否则会报错:error: reassignment to val

scala> var a = 1
a: Int = 1
scala> a = 2
a: Int = 2
scala> val b = 1
b: Int = 1
scala> b = 2
<console>:8: error: reassignment to val
       b = 2
       ^

1.1.2 自动类型推断

无论声明val变量,还是声明var变量,都可以手动指定变量的类型;如果不指定,Scala会自动根据值,进行类型推断

scala> val c = 1
c: Int = 1

scala> val c: Int = 1
c: Int = 1

1.2 数据类型

1.2.1 基础数据类型

Byte、Char、Short、Int、Long、Float、Double、Boolean

1.2.2 增强数据类型

StringOps、RichInt、RichDouble、RichChar
增强版数据类给基本数据类型增加了上百种增强的功能

1.3 操作符

Scala的算术操作符与Java的算术操作符没有什么区别

比如+、-、*、/、%等,以及&、|、^、>>、<<等

注意: Scala中没有提供++、—–操作符

我们只能使用+和-,比如count = 1,count++是错误的,必须写做count += 1

二、流程控制

2.1 if表达式

在Scala中, IF表达式是由返回值的,就是if或者else中最后一行语句返回的值

2.2 语句终结符

Scala默认不需要语句终结符,它将每一行作为一个语句

如果一行要放多条语句,则前面的语句必须使用语句终结符
语句终结符和Java中的一样,就是我们平时使用的分号

scala> val age = 20; if(age > 18) 1 else 0
age: Int = 20
res0: Int = 1

2.3 循环

2.3.1 for循环

for循环本身的特性就没什么好说的了,直接上案例

scala> :paste
// Entering paste mode (ctrl-D to finish)

val n = 10
for(i <- 1 to n)
println(i)

// Exiting paste mode, now interpreting.

1
2
3
4
5
6
7
8
9
10
n: Int = 10

2.3.2 这里面的to可以换成until

scala> :paste
// Entering paste mode (ctrl-D to finish)

val n = 10
for(i <- 1 until 10)
println(i)

// Exiting paste mode, now interpreting.

1
2
3
4
5
6
7
8
9
n: Int = 10

to 和 until 其实都是函数,一个是闭区间,一个是开区间

2.3.3 for循环针对字符串还可以用

scala> for(c <- "hello scala") println(c)
h
e
l
l
o

s
c
a
l
a
2.3.4 注意花括号

我在for循环后面没有使用花括号,都省略了,主要是因为for循环的循环体代码就只有一行,如果有多行,就需要使用花括号了,否则,最终执行的结果就不是我们想要的
没有使用{}

scala> :paste
// Entering paste mode (ctrl-D to finish)

for(i <- 1 to 5)
println(i)
println("hehe")

// Exiting paste mode, now interpreting.

1
2
3
4
5
hehe

使用{}

scala> :paste
// Entering paste mode (ctrl-D to finish)

for(i <- 1 to 5)
{
println(i)
println("hehe")
}

// Exiting paste mode, now interpreting.

1
hehe
2
hehe
3
hehe
4
hehe
5
hehe

2.3.5 while循环

它的用法和java中的while也是很像的,主要看一下语法层面的区别

scala> :paste
// Entering paste mode (ctrl-D to finish)

var n = 10
while(
首页 上一页 1 2 3 4 5 下一页 尾页 1/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇ctfshow--web入门--文件上传 下一篇Scala集合

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目