scala学习第四天

packagecom.learn.scala

/**

*

* Scala既是面向对象,也是面向过程的编程语言

* 函数,方法,过程类似,

* 函数:不属于任何类,可以在代码内部定义。

* 方法:属于某个类

* 过程:没有返回值的函数或方法

* Created by zhuqing on 2017/2/23.

*/

objectDay5Fucntion {

defmain(args: Array[String]): Unit = {

println(sum(1,2))//返回1+2的和3

println(times(3))//返回3的2倍6,第二个参数是默认值

println(times(3,3))//返回3的3倍9,第二个参数没有使用默认值,自己设置为3

println(sumAll(1,2))//返回1到2的和

println(sumAll(1,2,3))//返回1到3的和

vala =Array(1,2,3)

/**

* 变长参数不能像Java那样直接使用数组,但可在数组后面加上 :_*,告诉编译器你想把数组当序列使用

*/

println(sumAll(a:_*))

/**

* 使用区间时,也要追加:_*

*/

println(sumAll((1to10):_*))

}

/**

* scala方法与Java类似,但是返回值时可以不用return, 最后一个表达式的值为返回值。

* 也可以不用写返回类型,但是递归时必须写。

* **我个人觉得的scala不用return可能是担心开发者的方法写的太大,因为如果没有return方法行太多的话容易乱,所以开发者就只能把方法写的短一些。

*

*@param a

*@param b

*@return

*/

defsum(a: Int, b: Int) = {

println("a="+ a)

println("b="+ b)

/**

* 不需要return。

* 如果想用也可用,建议不要用

*/

a + b//返回a+b

}

/**

* scala 方法可以设默认参数,类似Flex

*

*@param a

*@param times默认为2

*@return

*/

deftimes(a: Int, times: Int =2): Int = {

println("a="+ a)

println("times="+ times)

a * times

}

/**

* scala 方法的变长参数:类型*,

*

*@param as

*@return

*/

defsumAll(as: Int*): Int = {

varsum =0;

for(a <- as) {

sum += a

}

sum

}

/**

* scala 没有返回值的方法

* 可以返回Unit=Java中的void

* def proce(a:Int ,b:Int):Unit={

* }

* 也可以什么都不返回

*  def proce(a:Int ,b:Int){

*  }

*@param a

*@param b

*/

defprocedure(a:Int ,b:Int){

println("hello world")

}

}

你可能感兴趣的:(scala学习第四天)