分享

about云spark开发基础之Scala快餐

pig2 2016-11-16 16:27:56 发表于 文档 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 38 37446


1.png


序言:

spark是用Scala语言来写的,因此学习Scala成为spark的基础。当然如果使用其它语言也是可以的。从性能上来讲,及代码简洁等方面,Scala是比较好的一个选择。

当前我们的生活都是处于快节奏,各方面都讲究快,快--讲究的是效率,这里同样是想让大家快速入门Scala,如同吃快餐一样,因此命名为快餐Scala。文中如有不当之处,大家多批评指正。

Scala是函数式编程,继承了其它语言的很多特点,并且发展了自己特性。因此下面所涉及的内容,需要熟悉一门语言,特别是Java语言。如果没有语言基础,建议从下面资源推荐中,下载Scala编程(完整版) (密码uprb),如果想更多更系统的学习,也可以从推荐资源中选择适合自己的书籍或则资源。
既然我们学习Scala,那就需明白什么是函数式编程。

在Scala编程中认为:函数式编程有两种指导理念:
第一种理念:函数式头等值。也就是函数式有值的,并且其可以作为参数来传递。匿名函数,可以随意的插入代码中。这个与传统的语言中的函数是不同的,传统语言函数可以理解为一个操作,或则功能。作为参数传递,会让传统程序员难以理解。但是在Scala中是可以的。

第二种理念:
程序的操作应该把输入值映射为输出值而不是修改原先数据。比如我们操作一个字符串,当我们执行replace操作后,形成的是一个新的字符串。而不是在原先的字符串的基础上修改而成。这有点绕的。打个比方,你们家房子旧了,你想翻新。不是对旧房子改造,而是另外新盖一个房子。

第二种理念另外的解释:方法不应有任何副作用。方法与环境的唯一交流方式是获取参数和返回结果。同样也是以字符串为例,Java的String, replace操作后,会返回一个新的字符串,这就是返回的结果。这里面参数是字符串本身,以及替换和被替换的字符。

上面有点官方,可能我们还是不理解什么是函数式编程。

这里我们复习下初中的函数,y=f(x);x数输入值,y是输出值,y也是x的函数,x是自变量,y都有对应的值。那么我们在来看上面字符串替换。

String str="www.aboutyun.com";
System.out.println(str.replace(".", "|"));
上面输入值:
(1)字符串:"www.aboutyun.com
(2)点号:"."
(3)竖杠:"|"

输出值:
www|aboutyun|com

上面这样就与我们的函数对应起来:
x是
(1)字符串:"www.aboutyun.com
(2)点号:"."
(3)竖杠:"|"

y是
www|aboutyun|com
我们理解上面内容后,在来套用第一、第二理念或许就能更好理解了。

我们理解了Scala为什么是函数式编程后,下面内容总结了Scala中个人认为比较难以理解的字符及一些关键字和函数。希望对大家有所帮助。

下面总结一些Scala常识性与其它语言不一样的地方

Scala没有静态函数,是通过object实现的。
Scala最后一行为返回值。
如果没有返回值则是unit
语句终止可以不使用分号
没有参数的方法直接写方法名,无需带括号
循环表达式没有(continue与break)
边长参数(:_*)


欢迎大家补充:
更多内容参考下面文章

文章下载:

http://url.cn/41ygbVh



文章内容:


spark开发基础之从Scala符号入门Scala
http://www.aboutyun.com/forum.php?mod=viewthread&tid=20159


spark开发基础之从关键字入门Scala
http://www.aboutyun.com/forum.php?mod=viewthread&tid=20223

更多内容:

spark开发基础之Scala快餐:开发环境Intellij IDEA 快捷键整理【收藏备查】
http://www.aboutyun.com/forum.php?mod=viewthread&tid=20380





已有(38)人评论

跳转到指定楼层
lgwhwyhd 发表于 2016-11-17 08:39:05
正需要,谢分享!
回复

使用道具 举报

Tiny_123 发表于 2016-11-17 09:22:34
感谢楼主分享
回复

使用道具 举报

wf52114 发表于 2016-11-17 09:35:56
支持支持支持
回复

使用道具 举报

maoshu 发表于 2016-11-17 09:41:54
hah,benmiaozunlaiye

回复

使用道具 举报

1234下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条