scala methods

https://cloud.tencent.com/developer/article/1793531

方法使用陷阱:

  • 1.return可以省略,Scala会使用函数体的最后一行代码作为返回值
  • 2.如果函数体只有一行代码,可以省略花括号
  • 3.返回值类型如果能够推断出来,那么可以省略(:和返回值类型一起省略)
  • 4.如果有return,则不能省略返回值类型,必须指定
  • 5.如果函数明确声明unit,那么即使函数体中使用return关键字也不起作用
  • 6.Scala如果期望是无返回值类型,可以省略等号 这种形式称为过程
  • 7.如果函数无参,但是声明了参数列表,那么调用时,小括号,可加可不加
  • 8.如果函数没有参数列表,那么小括号可以省略,调用时小括号必须省略
  • 9.如果不关心名称,只关心逻辑处理,那么函数名(def)可以省略

code 

package 方法和函数.方法

object Method_1 {

  def main(args: Array[String]): Unit = {

    //(9)如果不关心名称,只关心逻辑处理,那么函数名(def)可以省略
    // 1.扩展f9的功能   2.具体扩展的功能是通过fun函数传递,很灵活
    def f9(fun:(String)=>Unit): Unit ={
      fun("fun 被执行.......")
      println("f9() 被执行.....")
    }
    def f10(str : String ):Unit= println("str f10 被调用......")
    f9(f10)

    def fun(value : Int ):Int = {
      println("value:="+value)
      value
    }

    def fun1(x:Int ,y : Int ):Int ={
      println("x+y="+(x+y))
      x+y
    }

    println(fun(fun1(1,2)))

    f9((s:String)=>{println(s)})
    f9((s)=>{println(s)})
    f9((s)=>{println(s)})
    f9(s =>{println(s)})
    f9(s =>println(s))
    f9(println(_))

    def f11(fun:(Int,Int)=>Int):Double={
      fun(3,2)
    }

    println(f11(_ + _))
    println(f11(_ - _))
    println(f11(_ * _))
    println(f11(_ / _))
    println(f11(_ % _))
    println(f11(_))




  }



}

  

原文地址:https://www.cnblogs.com/linbo3168/p/15680072.html