Pinvon's Blog

所见, 所闻, 所思, 所想

Scala基础

内容声明

学习内容来自厦门大学数据库实验室

Scala的变量

Scala有两种变量, valvar

val是不可变的,在声明时就必须初始化,初始化后不能再赋值

var是可变的,在声明时必须初始化,后面还可再赋值

val变量

使用方法:

# 未声明变量类型,由scala进行类型推断
val mystr0 = "hello world"

# 显式声明变量类型
val mystr1 : String = "hello world"

var变量

# 声明时需要初始化
var dPrice : Double = 3.6

# 再次赋值
dPrice = 3.0

一行输入多条语句

使用分号分隔多条语句。

基本数据类型

Scala的数据类型包括:Byte, Char, Short, Int, Long, Float, Double, Boolean

字符串则直接使用java.lang.String类

Scala中的这些数据类型都是类,在包scala内

使用方法

var i = 123
var i = 3.14
var i = true
var i = 'A'
var i = "hello"

5.toString()
"abc".intersect("bcd") // intersect()方法输出两个字符串中都存在的字符

操作符

  • - * / % > < >= <= 等。

由于这些类型都是类,所以也可以用类的形式来调用操作符:

(5).+(3) // +()方法表示相加

Scala中没有++和--操作符,需要使用+=和-=。

Range

Range常用在循环中。

1 to 5 // 创建从1到5的数值序列,步长为1,终点为5 (1,2,3,4,5)
1.to(5) // 同上

1 until 5 // 创建从1到5的数值序列,步长为1,右开区间 (1,2,3,4)

1 to 10 by 2 //创建从1到10的数值序列,步长为2 (1,3,5,7,9)
0.5f to 5.9f by 0.8f

打印

print()

println()

printf()

读写文件

写入文本文件

import java.io.PrintWriter
val out = new PrintWriter("output.txt")
for(i <- 1 to 5) out.println(i)
out.close()

只有执行了 out.close() ,才能在指定目录下看到输出文件。

读取文本文件中的行

import scala.io.Source
val inputFile = Source.fromFile("output.txt")
val lines = inputFile.getLines
for(line <- lines) println(line)

if条件表达式

与Java基本一样。唯一的不同:Scala中的if表达式的判断结果,可以赋值给其他变量。

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

// a=1

while循环

while和do-while,与Java无异。

for循环

格式

for(变量<-表达式) 语句块

变量<-表达式,称为生成器(generator)

例子

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

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

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

for(i <- i to 5 if i%2==0) yield i
// Vector(2, 4)

yield表示对结果构建一个集合。

Comments

使用 Disqus 评论
comments powered by Disqus