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")

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,774评论 0 33
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile丽语阅读 3,864评论 0 6
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • 数组是一种可变的、可索引的数据集合。在Scala中用Array[T]的形式来表示Java中的数组形式 T[]。 v...
    时待吾阅读 993评论 0 0
  • 和田老妖约定,今天下午去见刘老师。 听大姨说过刘老师的过人之处,引起好奇,一直以为是位男士,今天早...
    寒冰糖心阅读 216评论 0 0