一块儿学scala--基础

scala基础

安装scala(不推荐使用最新版本,2.11.x够用了)


这里我选择2.11.12版本,在下载页面往下拉,选择scala-2.11.12.msi(windows用户),msi安装比较简单,一直点点就行。若是下载速度慢,建议用迅雷。
安装完后,配置环境变量,如图:

编辑环境变量

  • 在命令行中输入scala -version验证是否安装成功。

声明值和变量

安装成功后在命令行中输入scala并回车就能打开scala的解释器。每次输入命令,解释器都会显示出结果。

scala命令行操做

正如你所看到的,解释器会给结果自动命名和显示结果类型,而且在后续操做中能够继续使用。而解释器这些操做过程也被称为“读取-求值-打印” 循环(read-eval-print-loop)即REPL,后面为了方便表示,咱们就称解释器为REPL。
你还能自定义本身的名称:
scala> val ans = 8*5+2
ans:Int = 42
这里已val定义的值其实是个常量,至关于java中的final,值不可改变。定义变量使用var。
通常状况下,推荐使用val,除非你真的须要改变它的内容。在定义的时候你还能够指定变量的类型,如:
var ans:Int = 8*5+2
说明:在scala中,变量和函数的类型老是写在变量和函数的名称后面。

经常使用类型

scala有七种数值类型:Byte,Char,Short,Int,Long,Float,Double和Boolean类型。scala并无明确区分基本类型和引用类型,就都像java中的包装类,能够直接调用方法。
1.toString() // "1"
99.99.toInt() // 99
99.toChar() // 'c'
// 在scala中','逗号能够省略,括号内没有参数能够不写括号
1 toString //不建议哈
1.toString //这个就能够
// 在scala中有隐式转换,好比:String对象被隐式转换成StringOps对象,追加上百种字符串操做。
"hello".intersect("world") //返回 "lo"
// 一样地,scala还提供了RichInt,RichDouble,RichChar等,为原来的类型增长所不具有的便捷方法。
1.to(3) // 1,2,3
1.until(3) // 1,2

通配符_

在scala中,_字符是通配符,相似java的*
val a:Int=_ // a=0
val b:Double=_ // b=0.0
val c:String=_ //c=null
val d = _ // 报错

伴生对象

在scala中,类都有一个伴生对象,其方法就跟java中的静态方法同样,类名+方法名就能够直接调用。

apply方法

在scala中,咱们读取字符串中的一个字符是这样的s(i)。
var s = "hello"
println(s(4)) // 'o'
而在java中是这样的:
String s = "hello";
char c = s.charAt(4) // 'o'
其实scala之因此能这样获取字符串中的字符,是由于StringOps里面的apply方法。
s(i) 至关于 s.apply(i) //apply能够直接省略。
不少类的伴生对象都实现了apply方法,因此咱们能够直接  对象名()  实现apply方法。
val array:Array[Int] = Array(1,2,3) // 使用apply直接建立数组。

最后

码字不易,喜欢的点个赞呗。javascript

相关文章
相关标签/搜索