zoukankan      html  css  js  c++  java
  • Scala语言笔记

    Scala语言笔记 - 第三篇(容器方法篇)

    ​ 最近研究了下scala语言,这个语言最强大的就是它强大的函数式编程(Function Programming)能力,记录下最近学习的一些新的和技巧。注意:本系列博客不会从头讲解该语言的语法,而是通过一些例子讲解该语言的一些技巧,如果需要从头学习scala,建议使用该教程快速入门。

    map和flapMap方法:

    ​ 对于数组或者容器,scala和Python等语言类似,提供了map和flapMap等方法(目前Java8的stream方法也支持了这种用法)来方便的对容器里面的元素进行处理,并生成一个新的容器对象,来看如下代码:

        /**
        * Person class
        * @param _name name
        * @param _age age
        * @param _friends firends
        */
      case class Person(_name:String, _age:Int, _friends:Seq[String]){
        private var name = _name
        private var age = _age
        private var friends = _friends
    
        def getName() : String = this.name
        def getAge() : Int = this.age
        def getFriends() : Seq[String] = this.friends
      }
    
      def main(args: Array[String]): Unit = {
        val li = List(Person("li",12,List("li1","li2")), Person("wang", 13, List("wang1","wang2", "wang3")),
          Person("zhao", 15, List("zhao1")))
    
        //map:将列表转换为列表嵌套列表的方式,即List(List(a,b,c), List(d,e,f), List(g,h,i))的形式
        println(li.map(m => m.getFriends()))
        //flatMap:将列表转换为一个一维的列表,即List(a,b,c,d,e,f,g,h,i)的形式
        println(li.flatMap(m => m.getFriends()))
    
        println("------------------------------------------------------------------")
        var doubleArr = Array[Array[String]](Array("String1", "String2"),Array("World1", "World2", "World3"))
        //
        println(doubleArr.mkString(" "))
    
        //表示将前面的变量转换为冒号后面的类型,这里的意思是将doubleArr拼接成单个Array
        var flatArr = Array.concat(doubleArr:_*)
        // 0.5, 一个冒号用来转换参数的例子。
        var res = 1 / (2 : Double)
        println(flatArr.mkString(" "))
        println("------------------------------------------------------------------")
      }
    

    ​ Array的打印方式和Java类似,直接进行print,打印出来的会是对象的id,在这里可以使用mkString方法生成字符串来打印,同时,请注意concat的用法,是scala中的一个黑科技用法。

  • 相关阅读:
    linux 常用命令(个人记录)
    jmeter 5.0版本更新说明(个人做个记录)
    Netdata---Linux系统性能实时监控平台部署记录
    MySQL Yum存储库 安装、升级、集群
    linux 各项配置汇总
    构建Maven项目自动下载jar包
    计算服务器的pv量算法
    性能计算公式
    jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令
    结构模式
  • 原文地址:https://www.cnblogs.com/seancheer/p/10894290.html
Copyright © 2011-2022 走看看