scala快速入门系列【方法】

举报
大数据梦想家 发表于 2021/09/28 23:34:00 2021/09/28
【摘要】         本篇作为scala快速入门系列的第九篇博客,为大家带来关于方法的相关内容。   &nbs...

        本篇作为scala快速入门系列的第九篇博客,为大家带来关于方法的相关内容。
        
在这里插入图片描述


方法定义

        一个类可以有自己的方法,scala中的方法和Java方法类似。但scala与Java定义方法的语法是不一样的。


定义方法

语法

在这里插入图片描述
[!NOTE]

  • 参数列表的参数类型不能省略
  • 返回值类型可以省略,由scala编译器自动推断
  • 返回值可以不写return,默认就是{}块表达式的值

示例

  1. 定义一个方法,实现两个整形数值相加,返回相加后的结果
  2. 调用该方法

参考代码
在这里插入图片描述


返回值类型推断

        scala定义方法可以省略返回值,由scala自动推断返回值类型。这样方法定义后更加简洁。

[!DANGER]

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

示例

定义递归方法(求阶乘)
10 * 9 * 8 * 7 * 6 * … * 1

参考代码1
在这里插入图片描述
参考代码2
在这里插入图片描述


方法参数

        scala中的方法参数,使用比较灵活。它支持以下几种类型的参数:

  • 默认参数
  • 带名参数
  • 可变参数

默认参数

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

示例

  1. 定义一个计算两个值相加的方法,这两个值默认为0
  2. 调用该方法,不传任何参数

参考代码
在这里插入图片描述


带名参数

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

示例

  1. 定义一个计算两个值相加的方法,这两个值默认为0
  2. 调用该方法,只设置第一个参数的值

参考代码
在这里插入图片描述


可变参数

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

语法
在这里插入图片描述
[!NOTE]

  • 在参数类型后面加一个 * 号,表示参数可以是0个或者多个

示例

  1. 定义一个计算若干个值相加的方法
  2. 调用方法,传入以下数据:1,2,3,4,5

参考代码
在这里插入图片描述


方法调用方式

        在scala中,有以下几种方法调用方式,

  • 后缀调用法
  • 中缀调用法
  • 花括号调用法
  • 无括号调用法

        在后续编写spark,flink程序时,我们会使用到这些方法。


后缀调用法

        这种方法与Java没有区别。

语法
在这里插入图片描述

示例

        使用后缀法Math.abs求绝对值

参考代码
在这里插入图片描述


中缀调用法

语法

在这里插入图片描述
例如: 1 to 10

[!TIP]

  • 如果有多个参数,使用括号括起来

示例

        使用中缀法 Math.abs 求绝对值

在这里插入图片描述
操作符即方法

来看一个表达式
在这里插入图片描述
大家觉得上面的表达式像不像方法调用?

在scala中,+ - * / %等这些操作符和Java一样,但在scala中,

  • 所有的操作符都是方法
  • 操作符是一个方法名字是符号的方法

花括号调用法

语法
在这里插入图片描述
[!DANGER]

  • 方法只有一个参数,才能使用花括号调用法

示例

        使用花括号调用法Math.abs求绝对值

参考代码

在这里插入图片描述

无括号调用法

        如果方法没有参数,可以省略方法名后面的括号。

示例

  • 定义一个无参数的方法,打印"hello"
  • 使用无括号调用法调用该方法

参考代码

在这里插入图片描述
        
本篇博客到这里就结束了,感兴趣的小伙伴们可以持续关注哟~下一篇将为大家带来函数的相关内容,敬请期待!
在这里插入图片描述

文章来源: alice.blog.csdn.net,作者:大数据梦想家,版权归原作者所有,如需转载,请联系作者。

原文链接:alice.blog.csdn.net/article/details/103964914

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。