Scala 面向对象(2)

1.函数/方法

                           参数列表

(1)def 函数名(x:Int,y:string,.....) : 返回值={ }

**在Scala中最后一行默认作为整个函数的返回值

如上图,无论你在你的结果中写多少行,他只认x*y作为函数的返回结果。·

(2)unit表示没有返回值的函数或者方法。

像这种直接调用就可以了,它就帮你输出了,如果是有返回值的,那么你就需要打印出你的结果才能看到。

如果函数名中没有参数可以直接xie写成sayhello不要kuo'括号。

2.条件表达式

当if语句只有一句的时候,可以一句话就写完。

3.to、until和Range

to:就是俩个数字的闭区间

Inlcusive:表示的意思是包括的意思。

until:就是俩个数字的左闭右开区间。

until和Range的区别,基本上是没啥区别的,在源码中也就是until的返回值是Range,而Range的返回值本身到结束。

Range(1,10,2):表示1开始步长为2到10结束

4.for

(1)for(i <- 0 to 10){println(i)}

有些命令看似简单有时候一敲纠错他么的。

在for中还可以添加其他语句,例如上面的判断语句。

(2)数组遍历

这里你要知道Array数组的定义,.foreach的调用。在数组后期会详细详解。

5.默认参数

(1)

如上图,定义一个loadSparkConf的文件,filename中的默认参数是spark-default,下面调用语句中,第一个是传进了spark-xuexi的参数的,所以他的结果就是spark-xue,而第二个他没有传进参数,所以系统就是默认他的参数是spark-default,这就是默认参数。

6.变长参数

(1)又叫可变参数,结构就是

数据类型*

上图就是一个定义无限求和的函数,要读懂这个循环式怎么来的,就是一个遍历传参数进去然后相加,重点是那个Int*,也就是在以后的编程中一定要明白如何将ch程序写的具有扩展性。

(2)我们对它进行加强,求一到十的累加和。

这个错位的大概意思就是类型不对,人家是定长的,要改成变长。

(3)Int我们换成String

上面呢就报了错误,类型不匹配,希望的是一个字符串,实际上是一个字符数组。用上面相同的方法。

咯他就不报错了