Scalaの深い学習の方法の学習

14863 ワード

目次
  • 一、方法定義
  • 二、無参方法
  • 三、デフォルトパラメータメソッド
  • 四、可変パラメータ方法
  • 五、方法定義の注意事項
  • 一、方法定義
    メソッド定義の基本フォーマット:defメソッド名(パラメータリスト):戻り値タイプ=メソッドボディメソッドボディメソッドボディメソッドボディの戻り値が推定可能であれば戻り値タイプは省略できますが、メソッドが再帰メソッドであれば戻り値タイプは省略できません
    コードの例:
    package methodDemo
    
    /**
     * @author :    
     * @email :[email protected]
     * @date : 2020/8/19
     * @time : 3:44   
     */
    object MethodDemo1 {
      //     ,      
      def add(x:Int,y:Int):Int = x+y     //    
      // def add(x:Int,y:Int) = x+y            :       
      // def add(x:Int)(y:Int) = x+y           :         
    
      def main(args: Array[String]): Unit = {
        val res = add(5,3)
        // val res = add(5)(3)
        println(res)
      }
    }
    
    8
    

    二、無参方法
    コードの例:
    package methodDemo
    
    /**
     * @author :    
     * @email :[email protected]
     * @date : 2020/8/20
     * @time : 9:20   
     */
    object MethodDemo2 {
      //       
      // def name:String = System.getProperty("user.name")
      def name():String = System.getProperty("user.name")
    
      def main(args: Array[String]): Unit = {
        //     
        println(name)
        println(name())
      }
    }
    

    三、デフォルトパラメータ方法
    コードの例:
    package methodDemo
    
    /**
     * @author :    
     * @email :[email protected]
     * @date : 2020/8/20
     * @time : 9:25   
     */
    object MethodDemo3 {
    
      //             
      def printMsg(string: String = "hello,world") = println(string)
    
      //               
      // def multiAdd(a:Int = 1,b:Int = 3,c:Int):Unit = println(a+b+c)
      def multiAdd(a:Int = 1,b:Int = 3,c:Int):Int = a+b+c
    
      def main(args: Array[String]): Unit = {
        //           ,       Unit
        println(printMsg())
        // 3   c
        val res1 = multiAdd(c=3)
        println(res1)
        // 2     a,3   c
        val res2 = multiAdd(2,c=3)
        println(res2)
        // 10   b
        val res3 = multiAdd(b=10,c=3)
        println(res3)
        // 10   a,20   b,30   c
        val res4 = multiAdd(10,20,30)
        println(res4)
      }
    }
    
    

    実行結果:
    hello,world
    ()
    7
    8
    14
    60
    

    四、可変パラメータ方法
    コードの例:
    package methodDemo
    
    /**
     * @author :    
     * @email :[email protected]
     * @date : 2020/8/20
     * @time : 10:14   
     */
    object MethodDemo4 {
      //        
      def add(a:Int*) = {
        var sum = 0
        //              ,      
        for(item  a){
          sum += item
          println(item)
        }
        println("sum="+sum)
      }
      def main(args: Array[String]): Unit = {
        //     ,            
        add(1,2,3,4,5)
        //       ,           
        val arr = Array(10,20,30,40)
        add(arr:_*)
      }
    }
    

    実行結果:
    1
    2
    3
    4
    5
    sum=15
    10
    20
    30
    40
    sum=100
    

    五、方法定義の注意事項
  • returnを使用しない場合、メソッドボディ(式)の最後の式の値は、メソッドの戻り値
  • である.
  • return戻り値を使用する場合は、必ず戻りタイプを指定する必要があります.この場合、自動的に推定されて無効になります.一般的にreturn
  • は推奨されません.
  • メソッドは、値を返さなくてもよい、Unitタイプ
  • package methodDemo
    
    /**
     * @author :    
     * @email :[email protected]
     * @date : 2020/8/20
     * @time : 10:30   
     */
    object MethodDemo5 {
    
    //  def add(x:Int,y:Int):Int = {x+y}
      //      return,   (   )           ,        
      //     return   ,         ,          ,       return
      //          ,unit  
      def add(x:Int,y:Int):Int = { x+y}
      def main(args: Array[String]): Unit = {
        println(add(1,2))
      }
    }
    

    以上の内容は参考学習に供するだけで、権利侵害があれば私に連絡して削除してください!この文章があなたに役に立つなら、左下の親指はブロガーに最大の励ましです.あなたの励ましはブロガーの最大の原動力です!