Scala学习笔记(一)—chapter1

时间:2022-12-25 10:56:37

1、scala中,鼓励使用val——除非你真的需要改变它的内容。

scala> val answer = 8 * 5 + 2
answer: Int = 42

2、scala中,变量或函数的类型总是写在变量或函数名称的后面。

scala> val greeting:String = ""hello"
greting: String = hello

3、scala中,仅当同一行代码中存在多条语句时才需要分好隔开。一行一条语句的情况,可以不是用分号。

4、scala中,并不刻意区分基本类型和引用类型。java中的基本数据类型,在scala中都看作是类。比如说你可以对数字执行方法。scala也不需要java中的基本数据类型的包装类

scala> 1.to(10)
res3: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

5、scala并没有提供++和–操作符,我们需用使用+=1或者-=1,注意这点和java、c的不同。

6、scala中,_字符是通配符,类似java中的*

import scala.math._

7、scala没有静态方法,不过它有一个类似的特性,叫做单例对象(singleton object)。通常一个类对应有一个伴生对象(companion object),其方法就跟java中的静态方法一样。

8、使用伴生对象的apply方法是scala中构建对象的常用手法。比如Array(1, 4, 9, 16)返回一个数组,用的就是Array伴生对象的apply方法。

例题:
Scala学习笔记(一)—chapter1

import breeze.numerics.sqrt
val a1 = sqrt(3)
val a2 = a1 * a1
val a3 = 3 - a2

a1: Double = 1.7320508075688772
a2: Double = 2.9999999999999996
a3: Double = 4.440892098500626E-16

Scala学习笔记(一)—chapter1

scala> 3
res3: Int = 3

scala> res3 = 2
<console>:8: error: reassignment to val
res3 = 2

Scala学习笔记(一)—chapter1
相当于字符串重复3遍

scala> “crazy” * 3
res4: String = crazycrazycrazy

Scala学习笔记(一)—chapter1
返回两个数字中较大的那个。max方法定义在RichInt这个类中。

10 max 2
res0: Int = 10
10 max 11
res1: Int = 11

Scala学习笔记(一)—chapter1

Scala学习笔记(一)—chapter1

Scala学习笔记(一)—chapter1
take是从字符串首部开始获取字符串,drop是从字符串首开始去除字符串。takeRight和dropRight是从字符串尾开始操作。这四个方法是单方向的。如果想要字符串中间的子字符串,可以使用substring。