网站首页 > 基础教程 正文
?今天带大家一起过一遍scala语言的基础知识,涵盖if条件表达式、for循环与while循环。
if条件表达式
Scala IF...ELSE 语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。
新建Test.scala,用于测试我们撰写的代码。
cd /usr/local/scala
vim ./mycode/test.scala
请在Test.scala文件中输入以下代码。
object Test {
def main(args: Array[String]) {
var x = 10;
if( x < 20 ){
println("x < 20");
}
}
}
保存Test.scala文件,然后,使用下面命令执行代码nbsp;scalac Test.scala
nbsp;scala Test
x < 20和Java一样,if语句可以采用各种嵌套的形式,比如:val x = 3
if (x>0) {
println("This is a positive number")
} else if (x==0) {
println("This is a zero")
} else {
println("This is a negative number")
}但是,有一点与Java不同的是,Scala中的if表达式的值可以赋值给变量,比如:val x = 6
val a = if (x>0) 1 else -1
while循环
Scala中也有和Java类似的while循环语句。
var i = 9
while (i > 0) {
i -= 1
printf("i is %d\n",i)
}
当然也会有do-while语句,如下:
var i = 0
do {
i += 1
println(i)
}while (i<5)
for循环
Scala中的for循环语句格式如下:
for (变量<-表达式) 语句块
其中,“变量<-表达式”被称为“生成器(generator)”。
下面给出一个实例:
for (i <- 1 to 5) println(i)
在上面语句中,i不需要提前进行变量声明,可以在for语句括号中的表达式中直接使用。语句中,“<-”表示,之前的i要遍历后面1到5的所有值。
语句执行结束后,会打印出下面结果:
1
2
3
4
5
当然,在前面的Range那一节,我们介绍了Range的使用方法,因此,这里可以改变步长,比如设置步长为2,如下所示:
for (i <- 1 to 5 by 2) println(i)
这样会得到下面结果:
1
3
5
但是,有时候,我们可能不希望打印出所有的结果,我们可能希望过滤出一些满足制定条件的结果,这个时候,就需要使用到称为“守卫(guard)”的表达式。比如,我们只希望输出1到5之中的所有偶数,可以采用以下语句:
for (i <- 1 to 5 if i%2==0) println(i)
这样,就只会得到下面的偶数结果:
2
4
有时候,我们需要对上述过滤后的结果进行进一步的处理,这时,就可以采用yield关键字,对过滤后的结果构建一个集合。比如,我们可以采用以下语句:
scala> for (i <- 1 to 5 if i%2==0) yield i
res3: scala.collection.immutable.IndexedSeq[Int] = Vector(2, 4)
上面这种带有yield关键字的for循环,被称为“for推导式”。这个概念源自函数式编程,也就是说,通过for循环遍历一个或多个集合,对集合中的元素进行“推导”,从而计算得到新的集合,用于后续的其他处理。
参考链接:
http://dblab.xmu.edu.cn/blog/spark/
https://www.runoob.com/scala/scala-tutorial.html
猜你喜欢
- 2024-10-12 Scala初学者入门指南!涵盖20多个基本技巧
- 2024-10-12 Scala循环性能问题,为了性能,你愿意牺牲代码的可维护性么?
- 2024-10-12 使用Apache Kafka时的7个错误 apache kafka实战pdf
- 2024-10-12 scala中为什么不建议用return scala for until
- 2024-10-12 scala——泛型方法、类、特质的使用,泛型边界、协变逆变非变
- 2024-10-12 程序员构建总是出问题,怎么办? 程序员构建总是出问题,怎么办呢
- 2024-10-12 scala——列表、元祖、列表相关知识
- 2024-10-12 scala语言基础图解-第一阶段(变量-条件-循环-方法-函数-集合)
- 2024-10-12 Scala入门视频已更新至88讲,后续还有大约20讲左右的视频就结束
- 2024-10-12 Scala快速入门 - 环境安装篇 scala安装步骤
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)