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") } }