目录

概述实践变量初始化导包引入方法转变为函数用户访问Tuple元素简化函数参数传递定义偏函数变长参数

结束

概述

实践

变量初始化

在Scala中,变量在声明时需要显式指定初始值。可以使用下划线为变量提供初始值,但这种语法仅限于成员变量,不适用于局部变量

导包引入

使用下划线_可以导入整个包及其子包下的所有内容,类似于Java中的*。例如,如果你想要导入Java中的java.lang.Math,你可以使用import math._

方法转变为函数

在Scala中,方法本身并不是值,而是函数。因此,一个方法不能直接赋值给一个val变量,但是可以将方法转换为函数并进行赋值。

object FunctionDemo {

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

test03()

}

def test03(): Unit = {

def sayHello(name: String): Unit = {

println(s"Hell:$name")

}

// 将方法赋值给一个值、变量:空格 下划线

// 下划线 总结

val sayHelloFunc = sayHello _

sayHelloFunc("测试方法变函数")

}

}

执行结果:

用户访问Tuple元素

通过使用下划线,可以直接访问Tuple中的元素。

简化函数参数传递

当函数的参数仅出现一次且参数的类型已知时,可以使用下划线代替参数名称。

object FunctionDemo {

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

test04()

}

def test04(): Unit ={

def foo3(add:(Int,Int)=> Int): Unit ={

println(add(10, 20))

}

foo3(_ + _)

}

}

注意:

第一个 _ 表示第一个参数第二个 _ 表示第二个参数每个参数只能使用一次

定义偏函数

偏函数允许将多个参数函数的一部分调用作为单独的函数进行处理。

def test07(): Unit = {

def sum(a:Int,b:Int): Int ={

a + b

}

//s就是偏函数,绑定第一个 a 参数,第二个参数使用下划线 _ 替换缺失的参数列表

val s = sum(1 , _:Int)

println(s(2))

}

相加方法,先固定第一参数的值,变成只需投第二个参数的函数,再调用,结果如下:

变长参数

def test06(): Unit = {

def sum(args: Int*) = {

var result = 0

for (arg <- args) {

result += arg

}

result

}

println(sum(1 to 5: _*))

}

结束

scala下划线使用总结 至此结束,如有疑问,欢迎评论区留言。

参考文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: