第1课:大数据最火爆语言光速入门

一. Scala开发环境搭建(略)
二. Scala中的基本语法(重点)
val n =10
def f1: Int = {
for(i <- 1 to 20)
{
if (i == n) return 9
println(i)
i
}
}
块表达式:块表达式的代码块的返回值默认为最后一行的返回值。
最后一行是表达式,所以这个Result代码块的返回值为最后一行的返回值Unit。
这里写图片描述
最后一行内容的值,表达式的背后是代码块,代码块的返回值为最后一行的值,所以这里整个代码块的返回值默认为最后一行的值10。

这里写图片描述
占位符
这里写图片描述
readLind本身具有方法重载,同时也有默认构造的参数,即不传参数的默认为空, 且不需要后面的(),这带来了编写的方便性。

这里写图片描述
while循环

这里写图片描述
相对而言,for循环用的更多些。其中if i%2 == 0为守卫条件。

这里写图片描述
(0 to element) 本身就是一个集合

这里写图片描述
break其实 相当于实现了return, 因此只打印了1,2,3。

这里写图片描述
通常情况下在函数里面做循环的时候才去做return的动作。

这里写图片描述
当我们把最后一行 return 0去掉时,系统会报错如下。
从函数调用的角度,系统并不关心内部是怎么回事,要求返回具体的整数类型,而这个语句块执行之后内部产生的副作用是,实际上最后一次执行的是println,而println的返回类型是unit 类型
这里写图片描述
正确的做法:

这里写图片描述

函数可以赋值给函数本身,也可以赋值给变量本身

这里写图片描述
传参
默认参数:函数f3的返回类型为String
系统启动时会有自己的默认配置,系统框架运行时,会读取默认配置文件中的内容,然后把默认配置的具体内容赋值给默认参数,或者直接讲内容写成默认参数本身,这对于系统的正常运行非常重要
这里写图片描述

带名参数
Scala中,调用函数参数时可以不按照函数中的参数顺序来传递参数,而是使用这种带名字的参数
这里写图片描述

变长参数
*表示有很多个numbers参数
这里写图片描述

要求的返回值是Int 类型,但(1 to 10)本身不是Int类型,而_*表示把(1 to 10)中的每个元素提取出来,此时,每个元素即可符号Int类型的要求,这个语法特别常见,操作集合数组,tail中递归调用或者循环遍历表时经常用到这个语法。

这里写图片描述

过程,即没有结果,只有Unit返回值的函数。
过程的两种表现形式如下:
这里写图片描述
相对应的函数的表达形式

这里写图片描述

Lazy

这里写图片描述
这里系统返回的是一个BufferedSource的迭代器
这里写图片描述
加载参数mkString显示出文件内容
这里写图片描述

而当我们在其前面加入lazy时,文件内容不会被即时打印出来。
这里写图片描述
而只有当我们去访问这个content时,函数才会被执行并显示文件内容。
这里写图片描述

在大型分布式集群中,特别是比较耗时的操作中,lazy非常的重要。
Scala在底层读取文件时用的是Java的功能

异常
数组
此处定义的val数组arr,指的是arr本身指向的对象不可以修改,对象不可修改指的是对象的地址,而我们修改的是对象的内容,而该地址里的内容是可以修改的。这里修改的是对象的内容而不是对象的地址。
[Int]的类型指的是泛型。

实际上在大数据Spark中更常这里写图片描述见的创建数组的方式是直接通过类名,赋值之后,通过类型推导的方式直接推导出类型,实质上是调用了工厂方法构造器Apply实现的。

这里写图片描述
不可变数组Array本身一旦创建,是不可变的。

这里写图片描述
可变数组
Scala中提供了可变数组ArrayBuffer可以向数组中增加元素,它是可变的,所以可以直接向定义的数组元素赋值或者其他直接对元素的操作。

这里写图片描述

这里写图片描述
可变数组和不可变数组的转换:

这里写图片描述
数组的循环遍历:从头和从尾部遍历

这里写图片描述
对数组的其他操作:

这里写图片描述
Scala中常用的方式如下框,这里就比较有函数式编程的味道了。

这里写图片描述
Map
理论上讲,所有的数据都可以表达为key/value的方式。Map本身也是不可变集合,不可以直接增加和删除元素,但可以通过mutable map的方式进行集合内容的增删等操作。
A mutable collection can be updated or extended in place. This means you can change, add, or remove elements of a collection as a side effect. Immutable collections, by contrast, never change.

这里写图片描述
增强for 循环的应用

这里写图片描述
SortedMap会根据key的值进行排序

这里写图片描述
Tuple
Tuple和数组 下标不同,是从1开始的。
这里写图片描述

作业:移除一个数组中第一个负数之后所有的负数

这里写图片描述

**配套视频链接:http://www.tudou.com/home/_79823675/playlist
课程及技术交流QQ:460507491**

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值