scala学习笔记1

1、REPLjava

scala解释器读到一个表达式,对它进行求值,将它的打印出来,接着再继续读下一个表达式。这个过程被称做 读取-打印-循环,即REPL。程序员

从技术上讲,scala程序并非一个解释器。实际发生的是,你输入的内容被快速的编译成字节码,而后这段字节码交由java虚拟机执行。正因如此,大多数scala程序员更倾向将它称做REPL。es5

2、声明值spa

2.1val定义的值其实是一个常量,你没法改变它的内容。scala

scala> val result = 8*2
result: Int = 16

scala> result = 0
<console>:11: error: reassignment to val
       result = 0
              ^

scala鼓励使用valcode

你须要给出值或者变量的类型,声明值或者变量但不作初始化会报错。对象

在必要的时候,你也能够指定类型blog

scala> val result = 8*2
result: Int = 16

scala> result = 0
<console>:11: error: reassignment to val
       result = 0
              ^

3、scala经常使用类型ci

3.1基本数据类型字符串

scala和java中的数据类型同样有8种,可是在scala中并不刻意区分基本类型和引用类型。你能够对一个对数字执行方法,例如

scala> 1.toString()

res1: String = 1

在scala中咱们不须要包装类型,在基本类型和包装类型之间的转换是scala编译器的工做。

BigInt和BigDecimal类,用于任意大小的数字。这些类背后分别对应的是java.math.BigInteger和java.math.BigDecimal。他们用起来更加方便,你能够用常规的数学操做符来操做他们。

3.2字符串类型

scala用底层的java.lang.String类来表示字符串。不过,他经过StringOps类给字符串追加了上百种操做。

intersect方法输出两个字符串共同的一组字符

scala> "hello".intersect("world")
res0: String = lo

在这个表达式中,String对象被隐式的转换为了StringOps对象,接着StringOps类的intersect方法被调用。

一样的scala还提供了RichInt、RichDouble、RichChar等。他们提供了Int,Double,Char所不具有的快捷方法。咱们前面用到的1.toString就是RichInt类中的方法。首先1被转换成了RichInt,而后再应用头方法。

3.3类型转换

在scala中咱们使用方法而不是强制类型转换。

scala> 99.44.toInt
res3: Int = 99

scala> 99.toChar
res4: Char = c

scala> "99.44".toDouble
res5: Double = 99.44
相关文章
相关标签/搜索