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)={
}