首页 > 技术文章 > Scala--基础

one--way 2016-08-22 12:36 原文

一、Scala解析器

安装Scala

  scala-2.10.4.msi

进入命令行窗口

  cmd

输入scala

  

命令操作:

  

8 * 5 + 2 的结果被命名为res0,在后续操作中可以使用这个名称;

0.5 * res0 使用之前的计算结果常量名参与运算;

"Hello," + res0 显示结果为String类型;

res2.to + tab键 显示补全命令;

res2.toUpperCase 将res2字符串转化为大写;

 

二、声明值和变量

val 常量,值不可改变

var 变量,值可以改变

res0,res1这些自动生成的名称,是val,值也不可改变 

 

var str:String = "hello"

var str, message:String = null

str,message都初始化为null

 

声明值(val)或变量(var)需要初始化,不然会报错。

scala根据初始化推断数据类型。 

当然也可以手动指定类型   变量名:数据类型

val str:String = "hello"

 

三、常用类型

数据类型描述
Byte 8位有符号补码整数。数值区间为 -128 到 127
Short 16位有符号补码整数。数值区间为 -32768 到 32767
Int 32位有符号补码整数。数值区间为 -2147483648 到 2147483647
Long 64位有符号补码整数。数值区间为 -9223372036854775808 到 9223372036854775807
Float 32位IEEE754单精度浮点数
Double 64位IEEE754单精度浮点数
Char 16位无符号Unicode字符, 区间值为 U+0000 到 U+FFFF
String 字符序列
Boolean true或false
Unit 表示无值,和其他语言中void等同。用作不返回任何结果的方法的结果类型。Unit只有一个实例值,写成()。
Null null 或空引用
Nothing Nothing类型在Scala的类层级的最低端;它是任何其他类型的子类型。
Any Any是所有其他类的超类
AnyRef AnyRef类是Scala里所有引用类(reference class)的基类

 

1.to(10)

1.toString()

 

四、算术和操作符重载

+-*/%等操作符实际是方法;

a 方法 b  =>  a.方法(b)

a + b   简写为  a.+(b)

1 to 10          1.to(10)

counter+=1   scala没有++

 

五、调用函数和方法

import scala.math._ 等价于

import math._       其中scala可以省略,_字符是通配符,类似于java中的*

pow(2,4)

 

没有参数且不改变当前对象的方法不带圆括号

"Hello".distinct

 

六、apply方法

def apply(n: int) : Char

"Hello".(4)  是  "Hello".apply(4)  的简写

 

 

七、Scaladoc

在线API文档 2.11.4版本 :http://www.scala-lang.org/api/2.11.4/#package

 

类(C),伴生对象(O)

数学函数位于:scala.math包中

 

 

1.

2.

3.

4.

http://www.scala-lang.org/api/current/scala/collection/immutable/StringOps.html

搜索StringOps

5.

Int  RichInt

6.

7.

scala.util.Random

8.

9.

take, takeRight

10.

 

 

 

 

 

参考《快学Scala》

推荐阅读