Scala基础学习-方法和函数

一、 方法

1.方法格式
解释:在开发代码中,通常有大量的代码,势必出现重复代码,如果放在方法中,只需要执行一次就行。
格式:

def 方法名(参数名:参数类型,参数名:参数类型):[return type]={
		//方法体
}

案例:
1.定义一个getMax,用来获取两个整数数据的最大值,并返回结果
2.调用该方法获取最大值,并将结果打印到控制台上

//定义一个方法getMax
def getMax(a:Int,b:Int):Int={
		return if(a >= b) a else b  //"return" 用于函数或方法中,表示函数执行完成后返回给调用者一个值
}

//调用上面函数
```scala
val max = (20, 30)
println("max:" + max)
结果:30

代码简化版

def getMax(a:Int,b:Int)=if(a >= b) a else b 

//调用,另起一个类调用上面
val max = (20, 30)
println("max:" + max)

2.返回值类型推段
解释:scala定义方法可以省略返回值数据类型,由scala自动推断返回值类型
注意:递归方法不能省略返回值
案例:
特殊情况递归方法,定义一个方法计算某个数据的阶乘

def factorial(n:Int):Int = if(n == 1) 1 else n * factorial(n - 1)
// 递归方法中factorial 方法调用用户factorial ,自己调用自己,这里 方法名后面的:Int,不能省略


val num = factorial(5)
println("num")

3.惰性方法
解释:当记录方法返回值的变量被声明为lazy时,方法的执行会被推迟,直到我们首次使用该值时,方法才会执行

object test {
  def main(args: Array[String]): Unit = {
    def gitSum(a:Int,b:Int) = a + b
    lazy val suml = gitSum(10,20) //这个时候gitSum并没有计算,只有在下面被调度的时候才会计算
  }
}

4.方法参数
4.1、默认参数
解释:在定义方法时可以给参数定义一个默认值
案例:

object test {
  def main(args: Array[String]): Unit = {
    def gitSum(a:Int = 10,b:Int = 20) = a + b //可以在定义式,直接给初始值
    val suml = gitSum()
    println(suml)
  }
}

4.2、带名参数
在调用方法时,可以指定参数的名称来进行调用

object test {
  def main(args: Array[String]): Unit = {
    def gitSum(a:Int = 10,b:Int = 20) = a + b
    val suml = gitSum(a = 1) //可以在调用的使用指定某个参数,给他赋值
    println(suml)
  }
}

4.3、变长参数
解释:如果方法的参数式不固定的,可以将方法的参数定义成变长参数
格式:

def 方法名(参数名:参数类型*):返回值类型 = {
	//方法体
}

案例:

object test {
  def main(args: Array[String]): Unit = {
    def gitSum(numbers:Int*) = numbers.sum
    val suml = gitSum(1,2,3,4)
    println(suml)
  }
}
结果:10

5.方法调用方法
5.1、后缀调用
案例:

object test {
  def main(args: Array[String]): Unit = {
    val a = Math.abs(-10) //求绝对值
    println(a )

  }
}

二、 函数

1.定义函数
语法:

val 函数变量名= (参数名:参数类型,参数名:参数类型...) => 函数体

案例:

val getSumn = (a:Int,b:Int) => a + b
val sum = getSumn(11,22)
println("sum:" + sum)
结果:sum:33

2.方法和函数的区别

//函数:可以用一个参数(getSum)来接受函数结构
val getSum = (a:Int,b:Int) => a + b

//方法:不能用参数接收他
def add(a:Int,b:Int) = a + b

3.将方法转换为函数
格式:

val 变量名 = 方法名 _

案例:

object test {
  def main(args: Array[String]): Unit = {
    def add(a: Int, b: Int) = a + b
    val a = add _
    val sum = a(10, 20)
    println("sum:" + sum)
  }
}
结果:30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值