Scala学习笔记

基础概念

Scala

交互式环境

输入scala,进入命令行环境,可以进行交互式的操作。

所有结果均自动赋于一个变量名,在当前session下自由使用

交互式环境

声明常量与变量

  • 常量:val a = 23*32+4

  • 变量:var b = 0

申明时不需要给出类型,如果要指定类型,格式如下:

val greeting: String = “Hello”

常用类型

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

Boolean

scala不区分基本类型和引用类型,他们都是类。

1.toString()

1.to(10) //Range(1,2,3,4,5,6,7,8,9,10)

RichInt、RichDouble、RichChar…

BigInt、BigDecimal

重载

a + b

a.+(b)

方法调用

如果方法没有参数,不需要使用括号

“difjdk”.sorted

“fdasfa”.insersect(“bbbb”)

import scala.math._ //_是通配符,类似java中的*

类通常有一个伴生对象(companion object),它的方法类似java的静态方法

apply方法

val s = “Hello”

s(4)

s.apply(4)

当作()操作符的重载形式

()会与隐式参数冲突:

“afads”.sorted(3) (sorted可以有一个隐式参数,但3是非法的参数)

=> (“adfa”.sorted)(3)

或”adfa”.sorted.apply(3)

控制结构和函数

条件

if (x>0) 1 else -1

这个表达式是有值的,它的值根据x不同是1或-1,如下将值赋于变量s

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

表达式也可以返回不同的类型,如:

if (x>0) “positive” else -1

上述表达式的类型是两个分支类型的公共超类型,为Any

如果else缺失,if (x>0) 1 等同于

if (x>0) 1 else ()

()表示无有用值的占位符,是一个Unit类,相当于Java中的void

块表达式

scala中,{ }块包含一系列表达式,其结果也是一个表达式,块中最后一个表达式的值,就是块的值

val distance = {val dx = x - x0;val dy = y-y0;sqrt(dxdx+dydy)}

输入输出

打印一个值,用print与println函数

有变量输出,使用字符串插值

print(f”hello,$name,${age+0.5}%7.2f”)

被格式化的字符串以字母f打头。

使用scala.io.StdIn的readLine方法从控制台读取一行输入

作者

ovasty

发布于

2021-02-04

更新于

2021-02-09

许可协议

评论

You forgot to set the shortname for Disqus. Please set it in _config.yml.