Scala概述

来源:互联网 发布:windows编程的书 编辑:程序博客网 时间:2024/06/05 15:02

1. REPL

REPL : 读取 ==> 求值 ==> 打印 ⇒ 循环
Scala解释器从技术上讲并不是一个解释器,实际情况是你输入的内容被快速地翻译成字节码,然后字节码交给Java虚拟机执行,更倾向于称Scala解释器为REPL。

2. 变量

val:声明常量
var:声明变量
使用val或者var时需要初始化。

val a = 8 * 2    // val是常量var b = 12       // var是变量,可更改b = 11val x, y = 100   // x y都为100

不指定类型,Scala会自动推断;也可以自己指定类型(变量或函数的类型总是写在变量或函数的后面)。

val s: String = "hello,world"val s = "hello, world"val s: Any = "hello,world"

同一行代码中含有多条语句时才需要分号隔开。
注释同C++语言一样:

// 注释1/** * 注释2 */

3. 数据类型

Scala有7种数值类型:Byte, Char, Short, Int, Long, Float, Double
1个布尔类型:Boolean
还有RichInt, RichDouble, RichChar, BigInt(java.math.BigInteger), BidDecimal
这些类型都是类,Scala不刻意区分基本类型和引用类型

1.toString()    // 转字符串1.to(5)         // Range(1,2,3,4,5)“hello”.intersect(“world”) // 输出 “lo"

Scala用底层的java.lang.String类表示字符串,但scala通过StringOps类给字符串追加了上百种操作。
Scala中,用方法而不是强制类型转换,来做数值类型之间的转换。

4. 算术和操作符重载

操作符实际上都是方法,+ - * / % & | ^ >> <<

val a = 1val b = 2a + ba.+(b)var count = 1count += 1

5. 调用函数和方法

import scala.math._  // scala中  _  是通配符,类似*sqrt(2)pow(2, 4)min(3, Pi)

Scala没有静态方法,不过它有个类似的特性,叫做单例对象。
当单例对象与某个类共享同一个名称时,他被称作是这个类的伴生对象。
通常一个类对应有一个伴生对象,其方法就跟java的静态方法一样。
不带参数的Scala方法通常不用圆括号。

6. apply方法

"hello"(4)    // 输出o// "hello"(4) 是 "hello".apply(4) 的简写Array(1,4,9,17)  // Array伴生对象的apply方法