Scala笔记(一)

scala

Scala有两种类型的变量,一种是val,是不可变的,在声明时就必须被初始化,而且初始化以后就不能再赋值;另一种是var,是可变的,声明的时候需要进行初始化,初始化以后还可以再次对其赋值

val myStr = "Hello World!"
var myPrice : Double = 9.9
var myPrice = 9.9

字面量包括整数字面量、浮点数字面量、布尔型字面量、字符字面量、字符串字面量、符号字面量、函数字面量和元组字面量。

val i = 123  //123就是整数字面量
Scala允许对“字面量”直接执行方法
5.toString() //产生字符串"5"
"abc".intersect("bcd")  //输出"bc" intersect()方法用来输出两个字符串中都存在的字符

Scala中并没有提供++和–操作符,当需要递增和递减时,可以采用如下方式表达:

i += 1  //将i递增

Range可以支持创建不同数据类型的数值序列,包括Int、Long、Float、Double、Char、BigInt和BigDecimal等。
(1)创建一个从1到5的数值序列,包含区间终点5,步长为1

1 to 5
1.to(5)
//res0: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5)

(2)创建一个从1到5的数值序列,不包含区间终点5,步长为1

1 until 5
//res1: scala.collection.immutable.Range = Range(1, 2, 3, 4)

(3)创建一个从1到10的数值序列,包含区间终点10,步长为2

1 to 10 by 2
//res2: scala.collection.immutable.Range = Range(1, 3, 5, 7, 9)

(4)创建一个Float类型的数值序列,从0.5f到5.9f,步长为0.3f

0.5f to 5.9f by 0.8f
//res3: scala.collection.immutable.NumericRange[Float] = NumericRange(0.5, 1.3, 2.1, 2.8999999, 3.6999998, 4.5, 5.3)

Scala还带有C语言风格的格式化字符串的printf函数

printf("My name is %s. I hava %d apples and %d eggs.\n","Ziyu",i,j)

写入文本文件
Scala需要使用java.io.PrintWriter实现把数据写入到文本文件

import java.io.PrintWriter
//import java.io.PrintWriter //这行是Scala解释器执行上面语句后返回的结果
val out = new PrintWriter("/usr/local/scala/mycode/output.txt")
//out: java.io.PrintWriter = java.io.PrintWriter@25641d39  这行是Scala解释器执行上面语句后返回的结果
for (i <- 1 to 5) out.println(i)
out.close()  //必须要执行out.close()语句,才会看到output.txt文件被生成

读取文本文件中的行
可以使用Scala.io.Source的getLines方法实现对文件中所有行的读取。

import scala.io.Source
//import scala.io.Source //这行是Scala解释器执行上面语句后返回的结果
val inputFile = Source.fromFile("output.txt")
//inputFile: scala.io.BufferedSource = non-empty iterator  //这行是Scala解释器执行上面语句后返回的结果
val lines = inputFile.getLines //返回的结果是一个迭代器
//lines: Iterator[String] = non-empty iterator  //这行是Scala解释器执行上面语句后返回的结果
for (line <- lines) println(line)
//输出
1
2
3
4
5

有一点与Java不同的是,Scala中的if表达式的值可以赋值给变量

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

Scala中的for循环语句格式如下:
for (变量<-表达式) 语句块
其中,“变量<-表达式”被称为“生成器(generator)”。

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

有时候,我们可能不希望打印出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值