scala列表元素求和

阅读 76

2022-08-23


应用场景

  • 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)

}
}

  • 输出结果
  • scala列表元素求和_元素求和

Advice

  • 进一步理解递归,学会用递归的方式思考。
  • 使用​​IDEA​​ 利器进行开发,更有必要掌握各种快捷键(社区版 : Free, open-source)。
  • 掌握​​Scala API​​,很多方法已经实现。由于没有掌握Scala API 而去重复造轮子,既浪费时间,有没有意义!

References

  • ​​Scala API Root Package​​
  • ​​Download IntelliJ IDEA​​
  • ​​Strategic Scala Style: Principle of Least Power​​


精彩评论(0)

0 0 举报