主要查看教程:

https://www.runoob.com/scala/scala-tutorial.html

http://dblab.xmu.edu.cn/blog/spark

参考:

https://scala-lang.org/files/archive/spec/2.13

 

变量:
val类型:声明时必须被初始化,且初始化后不能再被赋值

val str1 = "HelloWorld" 
val str2 : String = "HelloWorld" //也可以显示出声明变量的类型 

var类型:声明时需要被初始化,且可以被赋值

var str1 = "ABC"
str1 = "DEF"

Scala允许对“字面量”直接执行方法

5.toString()

和Java不同,Scala中没有++和--操作符

多行字符串的表示方法:"""字符串内容"""

val str = """Hello
World
!"""

 

换行符:

Scala是一种面向行的语言,语句可以用分号(;)结束或换行符结束。若一行只有一条语句,则分号可写可不写;若有多条语句同行,就需要分号。

 

引用:

使用import关键字引用包

import java.awt.Color    //引入Color
import java.awt._          //引入包内所有成员

import语句可以出现在任何地方,而不是只能在文件顶部。import的效果从开始延伸到语句块的结束。这可以大幅减少名称冲突的可能性。

如果想要引入包中的几个成员,可以使用selector(选取器):

import java.awt.{Color, Font}
 
// 重命名成员
import java.util.{HashMap => JavaHashMap}
 
// 隐藏成员
import java.util.{HashMap => _, _} // 引入了util包的所有成员,但是HashMap被隐藏了

Scala默认引用java.lang._ 、 scala._ 和 Predef._

 

Range:

创建从1到5的数值序列,包含区间终点5,默认步长为1

1 to 5    //1,2,3,4,5

创建从1到5的数值序列,不包含区间终点5

1 until 5    //1,2,3,4

创建从1到10的数值序列,步长为2

1 to 10 by 2    //1,3,5,7,9

 

if条件表达式:

基本和Java一样,但它可以给变量赋值

val x = 1
val a = if(x > 0) 1 else -1

 

for循环:

for( 变量 <- 表达式) 语句块,其中 “ 变量 <- 表达式 ” 部分被称为生成器

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

使用守卫(guard)表达式,过滤出满足指定条件的结果(如只输出偶数)

for(i <- 1 to 5 if i%2==0) println(i)

Scala支持多个生成器,可以用分号分割

for(i <- 1 to 3 ; j <- 2 to 5) println(i*j)

每个生成器都可以添加一个“守卫”

for推导式:

对过滤后的结果进行进一步处理,采用yield关键字,对过滤后的结果构建一个集合

for(i <- 1 to 5 if i%2==0) yield i    

 

读写文件:

写入文本文件

import java.io.PrintWriter
val out = new PrintWriter("output,txt:)        //使用相对路径时,保存到当前目录下
for( i<- 1 to 5 ) out.println(i)           //将1,2,3,4,5写入output.txt
out.close()

读取文本文件

import scala.io.Source
val in = Source.fromFile("output.txt")
val lines = in.getLines
for(line <- lines) println(line)
posted on 2020-01-22 14:32  墨钺  阅读(164)  评论(0编辑  收藏  举报