12.scala下划线使用总结

概述

实践

变量初始化

在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下划线使用总结 至此结束,如有疑问,欢迎评论区留言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流月up

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值