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

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

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

package com.scala.demo


object 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:3
function4 run!
function5:7
function6:3
staticfunction:()
6;();9

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

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

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

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


匿名方法的定义方式

匿名方法

例如:args.

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

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值