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中的一个黑科技用法。

  • 相关阅读:
    【渗透测试】hydra使用小结
    Git/SQL/正则表达式的在线练习平台
    加密算法的前世今生
    Linux的进程、线程、文件描述符是什么
    一文看懂 session 和 cookie
    Linux 文件目录都是什么鬼?
    Linux shell 的实用小技巧
    关于 Linux shell 你必须知道的
    我用四个命令概括了 Git 的所有套路
    如何寻找最长回文子串
  • 原文地址:https://www.cnblogs.com/seancheer/p/10894290.html
Copyright © 2011-2022 走看看