系统学习scala--基础

Posted yoletpig

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统学习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直接创建数组。

最后

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

以上是关于系统学习scala--基础的主要内容,如果未能解决你的问题,请参考以下文章

大数据学习06 Scala的基础语法

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?

Scala学习之路----基础入门

Scala学习 -- 基础语法

Spark基础-scala学习

Scala基础学习