2. 函数
scala运算符、if ... else ...两部分和C语言类型,这里不再赘述,这里从for循环开始讲讲scala和c/c++的不同之处。
2.1 for循环
scala中主要包含to和until两个关键字,下面分别看看两者的用法,看例子就行了。
(1) to的用法
scala的例子使用to关键字如下:
scala
var e = 0;
for (e <- 0 to 5) {
println(f"e[$e%d] = " + (e + 1))
}
打印出的结果如下:
shell
e[0] = 1
e[1] = 2
e[2] = 3
e[3] = 4
e[4] = 5
e[5] = 6
(2) until的用法
scala的例子使用to关键字如下:
scala
var e = 0;
for (e <- 0 until 5) {
println(f"e[$e%d] = " + (e + 1))
}
打印出的结果如下:
shell
e[0] = 1
e[1] = 2
e[2] = 3
e[3] = 4
e[4] = 5
该结果和C语言中使用的方式是一致的。
2.2 函数
和c语言类似,基本可以作为参考,智能在于可以直接不写访问值和return关键字实现,下面举例说明。
(1)完整的实现方式
scala
// first way:
def sum(a: Int, b: Int): Int = {
return (a+b)
}
包含return值和返回值类型
(2)不包含返回值类型
scala
// second way:
def sum(a: Int, b: Int): Int = {
return a+b
}
包含return关键字
(3)不包含返回值类型和return关键字
scala
// third way:
def sum(a: Int, b: Int) = {
a+b
}
啥都省下来。
注:
- 函数值包含缺省值,直接在变量后添加,举例如下:
scala
// third way:
def sum(a: Int, b: Int = 1) = {
a+b
}
此时调用时若需要采用缺省值,变量b可以不赋值。
scala
def main(args: Array[String]): Unit = {
val a = 8;
println(f"$a%d + 3 = " + sum(a))
}
- apply函数为一类特殊的函数,可在object和class中通过object名或class名的方式直接调用,举例如下:
scala
object func {
def main(args: Array[String]): Unit = {
// 调用func object对象中的apply函数
func()
}
def apply() = {
println ("apply func test")
}
- object对象中的main函数为scala语言中入口函数,即从此处开始运行。