Scala 函数基础使用

如果你有 Python 基础,那么 Scala 的函数基础使用,你能快速的上手

格式

def 函数名(参数名: 参数类型, 参数名: 参数类型) : 返回值类型 = {
    方法体
}

def mani(args: Array[String]): Unit = {
    print("Hello world")
}

mark

函数的入参(参数)和出参(返回值)

有参数 有返回值

def fun(a: String): String ={
        return a + "bigdataboy.cn"
    }
println(fun("https://"))

有参数 没有返回值

def fun(a: String): Unit ={
        println(a)
    }
fun("bigdataboy.cn")

没有参数 有返回值

def fun(): String = {
        "Hello Scala"
    }
println(fun())

没有参数 没有返回值

def fun(): Unit= {
        println("Hello Scala")
    }
fun()

可变参数

与 Python 类似,用 * 号表示

可变参数可以传参,也可以不传参

可变参数一般放在参数列表最后面

def fun(name: String*): Unit ={
        println(name)
    }

fun()
fun("Bob","Black")
--------------------------------
List()
ArraySeq(Bob, Black)

默认参数

默认参数与 Python 类似

def fun(name: String, age: Int = 13) ={
        println(name,"-",age)
    }

fun("Bob")
fun(name="Bob",age = 16)
---------------------------------------
(Bob,-,13)
(Bob,-,16)

精简函数格式

如果能通过最后一行,推测出返回值类型,就可以不写返回值类型

def fun()= {
    println("Scala")
    "Scala"
}
// 调用 
println(fun())
--------------------
Scala
Scala

可以使用分号隔开逻辑写成一行

def fun()= { println("Scala"); "Scala" }
// 调用 
println(fun())
--------------------
Scala
Scala

在一行就可以去掉大括号。

去掉大括号,写在一行就只对最近的一个逻辑有效,所以 后面打印的是 ()

def fun()= println("Scala"); "Scala"
// 调用 
println(fun())
--------------------
Scala
()

如果函数,没有参数,可以去掉参数括号,但是在调用的时候,也不用加括号

def fun= println("Scala"); "Scala"
// 调用 
println(fun)
-----
Scala
()

mark

小技巧:当明确没有返回值时,函数的 = 可以省略,编译器也就不会把最后一行代码作为返回值。

def fun4() {println("Scala"); "Scala"}
println(fun4())
--------------------------------------
Scala
()

匿名函数

格式

() -> {
    代码块
    }

例子

() -> {
        var a= 1
        var b= 2
        println(a + b)
    }
// 写成一行 分号区分代码块
() -> {var a= 1; var b= 2; println(a + b) }

-------------------------------------------
3
发表评论 / Comment

用心评论~