1. 程式人生 > >scala列表元素求和

scala列表元素求和

應用場景

  • scala 基礎學習,以便後續Spark 原始碼研究 。
  • 通過scala語言,實現多種方式列表元素求和,進一步瞭解scala特性。
  • 還記得的大三實習的時候,去參加上海源創會,已經零零星星學了scala知識。直到現在才能欣賞 scala 的部分美!

程式碼實現

/**
  * 元素求和
  *
  * Created by Khgines on 2018-4-3.
  */

object elem_sum {

    /**
      * sum1、sum2 遞迴方式 求和
      *
      * @param lst
      * @return
      */
def sum1(lst : List[Int]):Int={ if (lst == Nil) 0 else lst.head + sum1(lst.tail) } def sum2(lst : List[Int]): Int = lst match { case Nil => 0 case h :: t => h + sum2(t) } /** * 迭代器遍歷方式 求和 * @param lst * @return */ def sum3(lst : List[Int]): Int = { var
result = 0 for (l <- lst) result += l result } // 入口函式 def main(args: Array[String]) { val nums = List(2,4,6,8) println(sum1(nums)) println(sum2(nums)) println(sum3(nums)) println(nums.sum) } }
  • 輸出結果
    output

Advice

  • 進一步理解遞迴,學會用遞迴的方式思考。
  • 使用 IDEA 利器進行開發,更有必要掌握各種快捷鍵(社群版 : Free, open-source)。
  • 掌握 Scala API,很多方法已經實現。由於沒有掌握Scala API 而去重複造輪子,既浪費時間,有沒有意義!

References