Scala方法与函数

Scala中有方法和函数两种,两者区别很小。Scala方法是类的一部分,而函数是一个对象可以赋值给一个变量。Scala中的函数则是一个完整的对象,Scala中的函数其实就是继承了Trait的类的对象。在Scala中使用val 语句可以定义一个函数,def语句定义方法。

class FunctionMethodDemo {
  // 方法
  def method(x: Int, y: Int) = x + y
  // 函数
  val func = (x: Int, y: Int) => x + y
}

 

方法的定义

Scala的方法定义格式如下:

def 函数名字(参数名称:参数类型):返回值类型={
    方法体
}

需要注意的是:

① 方法体最后一行就是返回值,不需要使用Return

② 无返回参数时,返回值类型为Unit,等价于Java中的void关键字。

③ 如果方法体只有一行时,可以用类似 def method(x: Int, y: Int) = x + y 的方式实现。

方法中的参数

Scala中参数可以分为默认参数、可变参数以及命名参数。

  • 默认参数

在方法声明时,会给参数赋值一个默认值。例如下图Spark源码所示

对于textFile方法的minPartitions参数,如果在调用的时候不进行赋值,则会默认是使用defaultMinPartitions对应值。

  • 可变参数

传递的参数是不固定的,可多可少。

常见的小场景就是写一个求和的方法,随意传递几个参数,即可实现求和的逻辑:

def getSum(numbers:Integer*):Int={
    var sum=0
    for(number<-numbers){
      sum+=number
    }
    sum
 }
  • 命名参数

命名参数即根据方法中的字段名称在调用时,可不按照声明顺序调用,只是指定参数值即可。

方法的调用

方法调用形式:functionName(参数列表)

如果方法中不含参数,可以不需要(),直接使用functionName就可以实现调用。

Scala中的to、util、range

to:左闭右闭,调用方式有两种: 1 to 10 《=======》1.to(10) 

util: 左闭右开,1.until(10)

range:左闭右开, range(from,to,step)

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑白键的约定

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值