吹静静

欢迎QQ交流:592590682

import scala.io.StdIn

/**
 * _ 的用法总结
 */
object Study {
  var gender:String = _

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

    // 1. 用一个变量去接一个方法名,_相当于传入参数的占位符
    val f1 = sayHello _
    val f2 = sayHello(_)
    f1("cjj")
    f2("cjjjj")

    // 2. 导包,相当于*匹配
    import scala.collection.mutable._

    // 3. 访问元组时,和值一起使用表示第几个元素
    val tuple = ("aaa", "bbb", "ccc")
    println(tuple._1)

    // 4. 根据类型的初始值进行的占位符
    // var gender:String = _
    gender = "cjj"
    println(gender)

    // 5. 用于元素匹配
    val a = List(1,2,3,4,5,6,7,8,9).filter(_ % 2 == 0)
    println("l = " + a)

    // 6. 当函数参数,只在函数体中出现一次,而且函数体没有嵌套调用时,可以使用下划线来简化函数定义
    val b = List(1,2,3,4,5,6,7,8,9)
    // b.foreach(x => println(x))
    // b.foreach(println(_))

    // 7. map: 是对每个元素进行某个操作
    println(b.map(x => x + 1))
    println(b.map(_ + 1))

    // 8. 特殊用法
    def sum(nums: Int*)= {
      var res = 0
      for(ele <- nums) {
        res += ele
      }
      res
    }
    println(sum(1 to 100 :_*))

    // 9. case表达式中无需使用到匹配到的变量,可以用_替代
    val x = 10
    val y = 5
    val op = StdIn.readLine("输入运算符:")
    op match {
      case "+" => println(x + y)
      case "-" => println(x - y)
      case "*" => println(x * y)
      case "/" => println(x / y)
      case  _ => println("sorry....")
    }

  }

  def sayHello(name: String): Unit ={
    println(s"$name")
  }
}

 

posted on 2021-02-05 17:38  吹静静  阅读(902)  评论(0编辑  收藏  举报