文章目录

一、方法定义二、无参方法三、默认参数方法四、可变参数方法五、方法定义的注意事项

一、方法定义

方法定义的基本格式:

def 方法名(参数列表):返回值类型 = 方法体 其中如果方法体的返回值是可以推断的话,返回值类型可以省略,但是如果方法是递归方法,返回值类型就不能省略

package methodDemo

/**

* @author : 蔡政洁

* @email :caizhengjie888@icloud.com

* @date : 2020/8/19

* @time : 3:44 下午

*/

object MethodDemo1 {

// 定义方法,实现加的功能

def add(x:Int,y:Int):Int = x+y // 写法一

// def add(x:Int,y:Int) = x+y 写法二:省略返回值类型

// def add(x:Int)(y:Int) = x+y 写法三:写成参数列表的方式

def main(args: Array[String]): Unit = {

val res = add(5,3)

// val res = add(5)(3)

println(res)

}

}

二、无参方法

package methodDemo

/**

* @author : 蔡政洁

* @email :caizhengjie888@icloud.com

* @date : 2020/8/20

* @time : 9:20 上午

*/

object MethodDemo2 {

// 定义无参方法

// def name:String = System.getProperty("user.name")

def name():String = System.getProperty("user.name")

def main(args: Array[String]): Unit = {

// 方法调用

println(name)

println(name())

}

}

三、默认参数方法

package MethodDemo

object DefaultMethod {

// 定义带有默认值参数的方法

def printMsg(string: String = "hello,world") = println(string)

// 定义带有多个默认值参数的方法

// def multiAdd(a:Int = 1,b:Int = 3,c:Int):Unit = println(a+b+c)

def multiAdd(a: Int = 1, b: Int = 3, c: Int): Int = a + b + c

def main(args: Array[String]): Unit = {

// 注意这里是打印了两次,返回值的类型为Unit

println(printMsg())

println(())

// 3赋值给c

val res1 = multiAdd(c = 3)

println(res1)

// 2默认赋值给a,3赋值给c

val res2 = multiAdd(2, c = 3)

println(res2)

// 10赋值给b

val res3 = multiAdd(b = 10, c = 3)

println(res3)

// 10赋值给a,20赋值给b,30赋值给c

val res4 = multiAdd(10, 20, 30)

println(res4)

}

}

四、可变参数方法

package MethodDemo

object VaraParameters {

// 遍历传入的参数

def add(a:Int*) = {

var sum = 0

// 相当于把参数传入到一个数组,然后遍历数组

for(item <- a){

sum += item

println(item)

}

println("sum="+sum)

}

def main(args: Array[String]): Unit = {

// 调用方法,但是要注意参数的类型一致

add(1,2,3,4,5)

// 定义一个数组,将数组类型传入到方法里

val arr = Array(10,20,30,40)

add(arr:_*)

}

}

五、方法定义的注意事项

package methodDemo

/**

* @author : 蔡政洁

* @email :caizhengjie888@icloud.com

* @date : 2020/8/20

* @time : 10:30 上午

*/

object MethodDemo5 {

// def add(x:Int,y:Int):Int = {x+y}

// 如果不使用return,方法体(表达式)中的最后一条表达式的值,就是方法的返回值

// 如果使用return返回值,一定要指定返回类型,这时候自动推断失效了,一般不推荐使用return

// 方法可以没有返回值,unit类型

def add(x:Int,y:Int):Int = { x+y}

def main(args: Array[String]): Unit = {

println(add(1,2))

}

}

ref:Scala深入学习之方法的学习,深入浅出Scala编程语言入门到精通

参考阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: