Scala学习之一---基础篇

来源:互联网 发布:python快速注释快捷键 编辑:程序博客网 时间:2024/04/29 07:58

定义变量

定义变量时,不用指字类型,系统会自动进行类型推断。这一点好像已经成为现在新出语言的标配,使用关键字:
  • var: 定义的变量可以再修改值
  • val: 定义的变量不可以再修改,相当于Java中用final修饰的。在FP的偏程风格中,更多推荐使用val

    可以在命令行中,键入scala。 试着定义几个格式:

    val result = 8+2  result:Int = 10val str ="hello" .

    你就可以看到参数的类型,这是系统自动为你推断的。

常用类型

scala是一个纯粹的学院派OO语言,它认为Java中的基础数据类型这些是一些不纯粹的OO概念,是一些妥协。因为,scala中没有基础数据类型。所有东西都是类,都是对象。8种java基础数据类型分别对应scala中的类型:Byte,Char,Short、Int、Long、Float、Double、Boolean。注意,这些都是类

算术和操作符重载

因为Scala中所有的东西都是类,因为所有的操作都是方法(或者函数),类似于

val sum = 1 + 2

实质上调用了"+()"方法,等同于如下代码:

val sum = 1.+(2)

对于有2个参数的方法,往往都可以用这种格式。用方法调用的格式,那是JAVA程序员的习惯,不过既然是学习Scala,我们还是建议采用Scala的格式。再举个例:

1.to(10)
这是JAVA的风格,但是scala更偏向于
1 to 10 

既然操作符都是方法,那么自然可以进行重载。 
值得注意的是:scala没有++,--这种操作。取而代之的是+=1,-=1

apply()方法

"Hello"(4) //产出'o'
这可不是构造函数,这实质上scala的一个语言糖,其实是调用了apply()。以上代码相当于
"Hello".apply(4)

关于这个方法我们留到后面讲伴生对象的时候再讲,此处留下悬念。

关于API以及一些工具类

首先scala的API很难读,比起JAVA那真是难读百倍。但是还是要试着去看,有几个小窍门

  • 数值类型去RichInt、RichDouble,字符串去StringOps找方法
  • 数学操作函数位于scala.math包中
  • scala中函数是可以做为参数的

0 0
原创粉丝点击