Scala(一)基础
- 使用Scala解释器
- 用var和val定义变量
- 数字类型
- 使用操作符和函数
- 浏览Scaladoc
命令行模式下使用解释器
从技术上讲,scala并不是一个解释器。实际发生的是,你输入的内容被快速地编译成字节码,然后这段字节码交由Java虚拟机执行。正因为如此,大多数的Scala程序员更倾向与将它称为REPL(Read取值 -> Evaluation求值 -> Print打印 -> Loop循环)
1.使用var val
val 定义的是一个常量无法它改变内容
val 定义的是一个可变的变量
2.Scala常用数据类型
七种数值类型:Byte、Char、Short、Int、Long、Float、Double、Boolean
定义变量声明数据类型:
val a : String = null
val b : Any = "Hello"
1.toString() //将1转换为String类型 "1"
1.to(10) //获得Range(1,2,3,4,5,6,7,8,9,10) == 1.to 10
3.算术和操作符的重载
基本运算符: + - / % 位运算: & | ^ >> <<
a + b 是 a.+(b) 方法的调用
1.to(10) 可以简写成 1 to 10
*scala没有提供++和--操作符我们需要使用 +=1 或 -=1
4.方法的调用
通过对象调用方法:
"bca'.sorted //将得到字符串"abc"
import scala.math._ //scala中,_字符串是“通配符”,类似与Java中
sqrt(2) //2的算数平方根
pow(2,4) //2的四次方
min(3,Pi) //两者取最小
5.apply方法
val s = "hello"
s(4) //返回 "o"
可以将这种用法当做()操作符的重载形式,背后的原理是一个名为apply的方法。
def apply(n: Int): Char
为什么不用[]操作符?可以将元素类型为T的序列s想象成一个从{0,1,2,.....n-1}到T的函数,
这个函数将i映射到s(i),即序列中的第i个元素。
注意:
偶尔()表示法会跟另一个scala特性——隐式函数,冲突。
"bca".sorted(3)
//将引发错误,因为sorted方法可以用一个隐式的排序参数来调用,但3不是一个有效的
排序。
正确处理
("bca".sorted)(3)
6.Scaladoc ,Scala的API文档
PS:
内容根据《快学Scala第二版》摘取及个人理解
scala2.12