Scala光速入门之一
2016年的第一天就参加了王家林老师的课程,不可不谓特殊的一天呀。王老师牺牲假期时间授课,本就令人感动,况且带来了整整三个小时的Scala入门讲解,着实让人钦佩!
[TOC]
课程介绍
昨晚是Scala入门三板斧之第一斧,注重基础。对于从未接触过Scala,甚至没有编程基础的同学都很有助益。三个小时之后你就可以应用Scala解决基本的问题了,而据王老师讲,学会这三板斧基本可以阅读Spark 95%的代码了!真是一件令人兴奋的事情!
这期的课程我大概分三块吧:
为什么学习Scala
为什么我们学Scala呢?因为它重要有价值呗!
Scala集函数式和面向对象于一身,同时也是在处理大数据时的不二之选。在大数据越来越火的今天,涌现出一批非常优秀的框架如Spark, Kafka等,而这些都是用Scala语言编写的。因此,学习Scala你将获得处理大数据任务上的优势。
此外,Scala完全兼容Java,可以调用Java的所有功能。曾经有人问Java之父,除了Java会选用什么语言,他毫不犹豫的回答是Scala!
Scala基础讲解
像将其他语言一样,在这部分王老师讲解了Scala的基本语法,特点等。涉及内容包括Array、Map、Tuple等,紧跟王老师讲解,你绝对可以体会到Scala面向对象的特点和它的函数式大法!
没有基础?完全不用担心,这是面向大众的一次深入浅出的讲解,你完全跟的上。
Spark案例结合
在讲解完Scala基础部分后,王老师会亲自带你在Spark源码中寻找这些基础的痕迹。可以看到Map Tuple等在Spark中的广泛应用。这样你就深切体会到了这节课可谓基石中的基石,根基稳健方能构大厦!
作业
纸上得来终觉浅,绝知此事要躬行!
三个小时酣畅淋漓的学习之后,你或许会有这样一种幻觉——已经掌握Scala了。确实在王家林老师的讲解下,我确实可以阅读基本的Scala代码了,然而当我尝试写点什么的时候,我发现还是很空白。还有一问题就是,即便你学习了Scala,一时你也想不出用Scala解决一点什么问题,不勤加练习这三板斧的精妙是掌握不了的。
为了让大家真正的掌握Scala,王老师还特意留了一个课后作业,以便大家联系掌握。完成有些困难?那为何不再温习一遍王老师的视频呢?没有资源?或许你可以在微博上@王老师让他知道你是一个有梦想的少年!
作业:
移除一个数组中第一个负数以后的负数
代码
/**
* Created by Takechiyo on 2016/1/1.
* DT 大数据梦工厂 第一个作业
* Remove the negative numbers in an array after the first negative number.
*/
object DT_1 {
def main(args: Array[String]) {
var flag : Boolean = true
def isNegative(n : Int) : Boolean = {
if(flag)
if(n < 0){
flag = false
return true
}
n >= 0 || flag
}
val a = Array(-1, -1, 2, 3, -4)
val b = a.filter(isNegative(_))
b.foreach(x => println(x))
}
}