scala列表元素求和
阿新 • • 發佈:2018-12-25
應用場景
- 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)
}
}
- 輸出結果
Advice
- 進一步理解遞迴,學會用遞迴的方式思考。
- 使用 IDEA 利器進行開發,更有必要掌握各種快捷鍵(社群版 : Free, open-source)。
- 掌握 Scala API,很多方法已經實現。由於沒有掌握Scala API 而去重複造輪子,既浪費時間,有沒有意義!