一、Scala基础

本系列文章只记录本人在学习过程中不会的或者不熟悉的内容

1.Scala解释器

命令行的操作方式

2.声明值和变量

多个值或者变量放在一起声明:

val xmax,ymax  = 100	//将xmax和ymax均设为100
val greeting,message : String = null	//将两个字符串初始化为null

3.常用类型

Byte,Char,Int,Long,Short,Float,Double,Boolean

这8个的类型均是类,Scala不刻意区分数据类型和引用类型,例如:

1.toString()	//得到的是字符串“1”
1.to(10)	//将交出Range(1,2,3,4,5,6,7,8,9,10)

Scala中不需要包装类型,在基本类型和包装类型之间的转换是Scala编译器的工作。

4.算术和操作符重载

①±*/%等操作符实际上都是方法,例如:a + b 实际上是 a.+(b)
在BigInt类中定义了一个名为/%的方法,该方法返回一个对偶,而对偶的内容是除法操作得到的商和余数。

通常来说可以用a 方法 b 来作为 a.方法(b) 的简写,该方式是一个带有两个参数的方法(一个隐式的和一个显示的),例如a.to(10)可以用a to 10 代替

② Scala中没有++ --操作,但可以使用+=1和-=1

5.关于方法的调用

① 如果方法没有参数,你可以不写()。例如:Boniour.sorted,给字符串中的字母排序。
如果一个无参方法并不能修改对象,调用时就不用写括号。
②引入包后,调用包中的方法不需要带前缀

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

若不引入scala.math包,就要带前缀scala.math.sqrt(2)

③ 通常,类都有一个伴生对象(comapion object),其方法就跟java中的静态方法一样。
例:scala.math.BigInt类的BigInt伴生对象有一个生成指定位数的随机质数的方法probablePrimeBigInt.propablePrime(100,scal.util.Random)这里的Random是定义在一个scala.util包里的单例随机数生成器对象

6.apply方法

val s = "hello
s(4)	//交出'o'

这种情况下可以把()理解成操作符的重载,但背后的实现原理是一个名为array的方法。
查看StringOps类的文档中,有这样一个方法:def apply(n : Int) : Char所以s(4)s.apply(4)的简写。
注意:()偶尔会和另一个Scala特性——隐式参数相冲突。例如前面举例,无参的方法是可以省略()的。例:"hello".sorted(4)是一种错误的写法,此时应该写成("hello".sorted)(4)

7.Scaladoc

Scaladoc中有比Java类丰富得多的便捷方法。

猜你喜欢

转载自blog.csdn.net/Cxf2018/article/details/109405926