黑猴子的家:Scala 函数一

scala定义函数的标准格式,最全的

def 函数名(参数名1: 参数类型1, 参数名2: 参数类型2) : 返回类型 = {函数体}

1、函数示例 unit

返回Unit类型的函数

def play(content:String): Unit ={
  println(content)
}

play("haha")

2、函数示例 自动推断返回类型

返回Unit类型的函数,但是没有显式指定返回类型。(也可以返回非Unit类型的值)

//函数的返回类型,是可以省略不写的,自动推断,默认返回Unit类型
def play2(content:String) ={
  println(content)
}

3、函数示例 省略返回类型

返回值类型有多种可能,此时也可以省略返回类型

//如果没有显性的显示函数的返回类型,不可以使用return关键字
//虽然没有显性显示返回值,但是可以偷偷的返回值,
//类型自动推断,而且推断的类型是最精准的类型
def play3(content:String) ={
  println(content)
  10
}

val result3 = play3("heihei")
println(result3)
println(result3.getClass.getTypeName)

----------------------------------------------------------------
def shout3(content: String) = {
  if(content.length >= 3)
    content + "喵喵喵~"
  else
    3
}

//省略类型,可以有返回值,但是不能显示的return
def play2(content:String) ={
  println(content)
  if(content.length >= 3)
    content
  else
    10
  // return 10 //不能显示返回,但是可以偷偷的返回, 一般不写return,使用自动推断
}
println(play2("hahaha"))
println(play2("ha"))

4、当函数有具体的返回类型

//当函数有具体的返回类型
// 可以使用return,也可以不使用return
def play4(content:String):Int ={
  println(content)
  11
}

val result4 = play4("opop")
println(result4)
println(result4.getClass.getTypeName)

5、我们经常用的是不写返回类型的

//我们经常用的是不写返回类型的
// 比如说下面这个例子,
// 一会返回Boolean类型一会返回String类型,使用自动推断比较好
def play5(content:String)={
  if(content.length > 10){
    true
  }else{
    "heihei"
  }
}

6、 等于号,也是可以去掉的

//等于号,也是可以去掉的,但是去掉等于号后,就不是一个函数了,是一个方法
//方法注重过程,函数注重结果
//这里的小括号是不能写成大括号
//定义的时候是固定的,我们调用的时候是可以使用大括号的
def play6(content:String){
  println(content)
}

7、 隐士函数

//隐士函数
//我们想抓住Scala函数的锚点,比如说 def 关键字
//但是没想到的是def 也是可以省略掉的,抓不住Scala锚点
//Scala是没有锚点的
val x = () => 1 + 2

8、括号也是可以省略的

//括号也是可以省略的
//play8 接受一个无参,并且返回String类型的函数
def fun8{
  "heihei"
}
def paly8(f: => String)={

}

你可能感兴趣的:(黑猴子的家:Scala 函数一)