Scala 中的方法

1.方法的定义

语法
def methodName (参数名:参数类型, 参数名:参数类型) : [return type] = {
    // 方法体:一系列的代码
}
注意项
  • 参数列表的参数类型不能省略
  • 返回值类型可以省略,由scala编译器自动推断
  • 返回值可以不写return,默认就是{}块表达式的值
代码示例
//定义一个方法,实现两个整形数值相加,返回相加后的结果
//方式一
def add(a:Int,b:Int) : Int = {a + b}
//省略返回值的写法
def add(a:Int,b:Int)= {a + b}
//其它写法
def add(a:Int,b:Int) = a + b
//调用
add(1,2)

在这里插入图片描述

注意

定义递归方法时,不能省略返回值类型

代码示例
//定义递归方法(求阶乘)
//没有返回值写法 报错
def m2(x:Int) = {
	if(x<=1) 1
    else m2(x-1) * x
}

//有返回值写法,方法定义正确
def m2(x:Int):Int = {                                                                                                 | if(x<=1) 1                                                                                                            |     else m2(x-1) * x                                                                                                  | }   

在这里插入图片描述

2.方法参数

类型
  1. 默认参数
  2. 带名参数
  3. 变长参数

默认参数

在定义方法时可以给参数定义一个默认值。

代码示例
// x,y的默认值为0 
//定义方法求两个数相加的值, 并且参数的的默认值为0
def add(x:Int = 0, y:Int = 0) = x + y
//调用
add();

在这里插入图片描述

带名参数

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

代码示例
def add(x:Int = 0, y:Int = 0) = x + y
add(x=1)

在这里插入图片描述

变长参数

如果方法的参数是不固定的,可以定义一个方法的参数是变长参数。

语法格式
//在参数类型后面加一个`*`号,表示参数可以是0个或者多个
def 方法名(参数名:参数类型*):返回值类型 = {
    方法体
}
代码示例
//1. 定义一个计算若干个值相加的方法
//2. 调用方法,传入以下数据:1,2,3,4,5
//  sum 求和
def add(num:Int*) = num.sum
//调用
add(1,2,3,4,5)

在这里插入图片描述

扫描二维码关注公众号,回复: 8779075 查看本文章

3.方法的调用

调用方式

  1. 后缀调用法
  2. 中缀调用法
  3. 花括号调用法
  4. 无括号调用法
后缀调用法

语法格式

对象名.方法名(参数)

代码示例

Math.abs(-1)

在这里插入图片描述

中缀调用法

语法

对象名 方法名 参数

注意:如果有多个参数,使用括号括起来
代码示例

Math abs -1

在这里插入图片描述

操作符即方法

代码示例

1 + 1

说明

在scala中,+ - * / %等这些操作符和Java一样,但在scala中
所有的操作符都是方法
操作符是一个方法名字是符号的方法

花括号调用法

语法
注意:方法只有一个参数,才能使用花括号调用法


Math.abs{ 
    // 表达式1
    // 表达式2
}

代码示例

Math.abs{-10}

在这里插入图片描述

无括号调用法

如果方法没有参数,可以省略方法名后面的括号
代码示例

def m3()=println("hello")
m3

在这里插入图片描述

发布了88 篇原创文章 · 获赞 114 · 访问量 3002

猜你喜欢

转载自blog.csdn.net/hongchenshijie/article/details/104010233