系统学习scala--基础
scala基础
安装scala(不推荐使用最新版本,2.11.x够用了)
这里我选择2.11.12版本,在下载页面往下拉,选择scala-2.11.12.msi(windows用户),msi安装比较简单,一直点点就行。如果下载速度慢,建议用迅雷。 安装完后,配置环境变量,如图:
- 在命令行中输入scala -version验证是否安装成功。
声明值和变量
安装成功后在命令行中输入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直接创建数组。
最后
码字不易,喜欢的点个赞呗。
相关推荐
Noneyes 2020-11-10
huavhuahua 2020-11-20
weiiron 2020-11-16
ailxxiaoli 2020-11-16
cakecc00 2020-11-15
千锋 2020-11-15
JakobHu 2020-11-14
chensen 2020-11-14
Nostalgiachild 2020-11-13
guangcheng 2020-11-13
zhangxiafll 2020-11-13
jipengx 2020-11-12
xirongxudlut 2020-11-10
solarLan 2020-11-09
pythonxuexi 2020-11-08
文山羊 2020-11-07
susmote 2020-11-07
wuShiJingZuo 2020-11-05
Pythonjeff远 2020-11-06