scala自学日记(5)-scala方法的定义方式

来源:互联网 发布:外贸出口的数据 编辑:程序博客网 时间:2024/05/17 21:30

初次 接触到scala发现scala定义方法的方式和java有很大的区别

1.下面是我写的一个测试scala方法定义的demo.

package com.scala.demoobject FunctionDemo {   //定义方法1  def function1()  {    println("function1 run!")  }   // 定义方法2,效果和function1是一样的,可见Unit的作用void  def function2():Unit=  {    println("function2 run!")  }   //定义方法3  def fcunction3(a:Int,b:Int):Int ={  //=不可去掉    a+b  }  /**   * function4主要是测试=是否什么时候是必须的   */  def function4()=  {    println("function4 run!")  }  def function5():Int=  {    2+5  }  def function6(a:Int,b:Int)=  {    val s=a+b    println("function6:"+s);  }  //定义一个参数,觉得是static 类型的  val staticfunction=    {    println("staticfunction run!")  }  val value1=  {    1+2+3  }  val value2=  {    val a=1+2+3    val b=a+2  }  val value3=2+3+4    def main(args:Array[String])  {   function1   function2   println("function3:"+ fcunction3(1,2))   function4   println("function5:"+function5)   val f1=function6 _   f1(1,2)   staticfunction  //发现无法运行,因为staticfunction是一个参数   println("staticfunction:"+staticfunction)  //输出:(),相对于null   println(value1+";"+value2+";"+value3) //value2=null  }}
运行的结果为:

staticfunction run!function1 run!function2 run!function3:3function4 run!function5:7function6:3staticfunction:()6;();9

通过上面的输出结果可以发现:

1.把方法赋值给一个参数的话,这个方法会在参数编译的时候就执行,相当于该参数是一个static类型的.当然scala里面是没有static类型的.

2.当有返回值的时候,定义的时候"="是不能省略的,没有返回值的时候,无论有没有参数"="都是可以省略的,例如function6,然而function6的调用方式应该怎么写,我只想到了如上写法,求大神指点

3.初始化参数的时候可以加{}


匿名方法的定义方式

匿名方法

例如:args.

args.foreach((arg: String) => println(arg))
其中args是数组

scala方法的定义就介绍到这里,下一章我们介绍下数组的初始化以及遍历的方法


原创粉丝点击