微信号:wwwaboutyuncom

介绍:about云-为热爱云开发技术人员提供最全面的信息传播和服务平台

spark开发基础之从Scala符号入门Scala

2016-11-06 19:47 pig2

问题导读

1.Scala中有哪些常见符号?
2.本文讲了哪些符号?
3.你对符号的理解是什么?
4.<-,->,=>,Int=,_ 它们含义是什么?用在什么地方?



当我们学习spark的时候,我们知道spark是使用Scala语言开发的,由于语言是相通的,所以对于传统程序员【Java,.net,c等】,我们能看懂Scala程序是没有问题的。但是当我们看到它的时候,却傻眼了。那么多符号,左箭头,右箭头,下划线等等搞得摸不着头脑。

看来如果想顺利的学习,我们必须学一下Scala了。很多都是从变量定义,函数,类等入门。由于我们可能有些其他语言基础,这里我们从Scala符号入门。一文能帮助大家阅读比较常见的Scala程序。


Scala符号
如果你学过其它语言,特别是.net语言,那么你能看懂Java语言。无论是C,C++,还是其它语言,它们的变量,函数的定义都是差不多的。你能知道这是一个函数,并且大概懂得它实现了什么。但是如果你阅读过Scala代码,你会感觉摸不着头脑。里面有各种奇葩符号,比如:<-,->,=>,Int=,_ ,甚至还有空格。同样还有没有见过的关键字,with,apply。

我们来看看这些符号都用在什么地方:


第一个这个符号<-用在什么地方,比如用于for循环,

示例1:

[Bash shell] 纯文本查看 复制代码

?

1
2
for (arg <- args) 
println(arg)


上面是什么含义?
循环args,打印出里面的元素

示例2:

[Bash shell] 纯文本查看 复制代码

?

1
2
for (i <- 0 to 2) 
print(greetStrings(i))


上面的含义是遍历一个数组

[Bash shell] 纯文本查看 复制代码

?

1
2
3
4
5
6
7
8
val A= new Array[String](3) 
 
A(0) = "Hello"
A(1) = ", "
A(2) = "world!\n"
 
for (i <- 0 to 2) 
print(A(i))



这个符号其实很碍眼,导致你可能根本弄不清楚为什么要搞这么个符号。而且很可能被我们误认为是一个负号。这样就增大了我们的阅读难度。但是如何你习惯了,其实Scala还是不错的,间接而且思想跟别的语言有很大的区别。
这里出现的英文to,也是比较奇怪的,我们看到过变量和函数使用英文,但是在for语句中使用英文,这也太随意了,不知道的以为是在做阅读理解。其实这里的to,是0的一个方法,全写

[Scala] 纯文本查看 复制代码

?

1
for (i <- 0 .to( 2 ))



第二个符号->
这个符号用于什么地方,比如map映射

Map(映射)是一种可迭代的键值对(key/value)结构。

// Map 键值对演示
val colors = Map("red" -> "#FF0000", "azure" -> "#F0FFFF")

~~~~~~~~~~~~~~~~~~~~~~~~
上面是定义map,那么map该如何操作:

Scala Map 有三个基本操作:

方法 描述
keys 返回 Map 所有的键(key)
values 返回 Map 所有的值(value)
isEmpty 在 Map 为空时返回true


实例
以下实例演示了以上三个方法的基本应用:

[Bash shell] 纯文本查看 复制代码

?

01
02
03
04
05
06