zoukankan      html  css  js  c++  java
  • Scala “_” 的用法总结

    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")
      }
    }
  • 相关阅读:
    BUAA OO 2019 第三单元作业总结
    OpenJML入门
    BUAA OO 2019 第二单元作业总结
    BUAA OO 2019 第一单元作业总结
    Spring MVC原理
    Spring AOP原理
    Spring DI原理
    Spring IOC原理分析
    观察者模式
    装饰模式
  • 原文地址:https://www.cnblogs.com/chuijingjing/p/14379024.html
Copyright © 2011-2022 走看看