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)

    }
}
  • 输出结果
    scala列表元素求和_第1张图片

Advice

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

References

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

你可能感兴趣的:(开发语言(Dev))