【Scala】下划线的使用总结

文章介绍了Scala中的一些编程技巧,包括使用import导入包下的所有内容,通过下划线访问元组的元素,为类的var属性设置默认值,使用匿名函数的不同简写形式,以及在模式匹配中使用下划线作为默认情况。
摘要由CSDN通过智能技术生成

1. 用于导包下的所有内容

import scala.collection.mutable._

2. 为类中的var属性赋默认值

class Test {
    var name:String = _    // 默认值为 null
    var age:Int = _		   // 默认值为 0
}

3. 访问元组

val/var 元组名 = (元素1, 元素2, 元素3....)

元组名._1  //获取第一个元素

元组名._2  //获取第二个元素

4. 匿名函数作为实参传递时用下划线简化

object scala_Demo02 {
  def main(args: Array[String]): Unit = {
    val list = List(1, 2, 3)
    println("---------------匿名函数包含单个参数的情况---------------------")
    //1、匿名函数完整形式
    val listMap1 = list.map((n: Int) => {n + 1})
    //List(2, 3, 4)
    println(listMap1)
    //2、省略参数中的类型
    val listMap2 = list.map((n) => {n + 1})
    println(listMap2)
    //3、因为只有一个参数,省略包含参数的小括号;只有一行代码,可省略{}
    val listMap3 = list.map(n => n + 1)
    println(listMap3)
    //4、因为匿名函数中的参数在表达式右边只出现一次,我们使用下划线代替
    val listMap4 = list.map(_ + 1)
    println(listMap4)

    println("---------------匿名函数包含多个个参数的情况---------------------")
    //当有多个参数且每个参数在表达式右边也只出现一次时,也可以用下划线简写,但是下划线的顺序与左边参数的顺序一致。
    val listMap5 = list.reduceLeft((x:Int,y:Int) => (x+y))
    println(listMap5) //6

    //省略参数情况1
    val listMap6 = list.reduceLeft((x,y) => (x+y))
    println(listMap6)//6

    //省略参数情况2,等价于上面的式子
    val listMap7 = list.reduceLeft(_+_)
    println(listMap7)//6
  }
}

5. 用于模式匹配等价于else

object TestMatchCase {

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

    var a: Int = 10
    var b: Int = 20
    var operator: Char = 'd'

    var result = operator match {
      case '+' => a + b
      case '-' => a - b
      case '*' => a * b
      case '/' => a / b
      case _ => "illegal"
    }

    println(result)
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ElegantCodingWH

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

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

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

打赏作者

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

抵扣说明:

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

余额充值