scala自定义函数和方法

scala中函数与方法的讲解:

1.两者的同异点:

① 二者在语义上的区别很小。Scala 方法是类的一部分,而函数是一个对象可以赋值给一个变量。换句话来说在类中定义的函数即是方法。
② Scala 中的方法跟 Java 的类似,方法是组成类的一部分。
③ Scala 中的函数则是一个完整的对象,Scala 中的函数其实就是继承了 Trait 的类的对象。
④Scala 中使用 val 语句可以定义函数,def 语句定义方法。
⑤函数必须要有参数列表,而方法可以没有参数列表

2.方法的声明

def functionName ([参数列表]) : [return type]
举例:
class Test{
  def a(x: Int): Int
}

注意:如果你不写等于号和方法主体,那么方法会被隐式声明为抽象(abstract),包含它的类型于是也是一个抽象类型。

3.方法的定义

说明:方法定义由一个 def 关键字开始,紧接着是可选的参数列表,一个冒号 : 和方法的返回类型,一个等于号 = ,最后是方法的主体。
格式1

def functionName ([参数列表]) : [return type] = {
   function body
   return [expr]
}

注意:以上代码中 return type 可以是任意合法的 Scala 数据类型。参数列表中的参数可以使用逗号分隔。

举例:求传入的一个数的平方

object Test{
   def ansInt( a:Int ) : Int = {
      var ans:Int = 0
      ans = a * a
      return ans
   }
}

格式2

object Hello{
   def printMe( ) : Unit = {
      println("Hello, Scala!")
   }
}

说明:如果方法没有返回值,可以返回为 Unit,这个类似于 Java 的 void。

4.方法的调用

①标准格式:

functionName( 参数列表 )

②如果方法使用了实例的对象来调用,我们可以使用类似java的格式 (使用 . 号):

[instance.]functionName( 参数列表 )

实例:

object Test{
   def ansInt( a:Int ) : Int = {
      var ans:Int = 0
      ans = a * a
      return ans
   }
	def main(args: Array[String]): Unit = {
		print(ansInt(4))
	}
}

5.函数的声明

  1. 声明
val f1 = (x:Int,y:Int) => x + y
  1. 注意点:在Scala中无法直接操作方法,如果要操作方法,必须先将其转换成函数。
方法一:
val f = ansInt _
方法二:
val f: (Int) => Int = ansInt

说明:_线可以直接将方法转化为函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值