zoukankan      html  css  js  c++  java
  • Scala 学习笔记之集合(2)

    class StudentTT extends StudentT{
      def sayBye(name: String, age: Int)(address: String){
        println("Hello, " + name + ":" + age + ":" + address)
      }
      
    }
    
    object CollectionDemo3 {
      def main(args: Array[String]): Unit = {
        val s = new StudentTT()
        //Currying
        s.sayBye("leo", 1)("shanghai")
        //给定一个起始值0,使用规约函数规约列表,这里其实就是所有元素求和
        println(List(1,2,3).fold(0)(_+_))
        //给定一个起始值0,使用规约函数从左至右规约列表,这里其实就是所有元素求和
        println(List(1,2,3).foldLeft(0)(_+_))
        //给定一个起始值0,使用规约函数从右至左规约列表,这里其实就是所有元素求和
        println(List(1,2,3).foldLeft(0)(_+_))
        //给定一个规约函数,从第一个元素开始规约
        println(List(1,2,3) reduce(_+_))
        //给定一个规约函数,第一个元素从左到右开始规约
        println(List(1,2,3) reduceLeft(_+_))
        //给定一个规约函数,第一个元素从右到左开始规约
        println(List(1,2,3) reduceRight(_+_))
        //给定一个起始值0,使用规约函数,生成一个归约值得列表
        println(List(1,2,3).scan(0)(_+_))
        //给定一个起始值0,使用规约函数从左至右,生成一个归约值得列表
        println(List(1,2,3).scanLeft(0)(_+_))   
        //给定一个起始值0,使用规约函数从右至左,生成一个归约值得列表
        println(List(1,2,3).scanRight(0)(_+_))
        //复杂的归约,如果你一看就懂,说明你真的掌握了,我当时认真看了一会才看明白。。。
        println(List(1,2,3).foldLeft(false){(a, i) => if(a) a else (i ==2)})
        
      }
    }
    

    运行结果:

    Hello, leo:1:shanghai
    6
    6
    6
    6
    6
    6
    List(0, 1, 3, 6)
    List(0, 1, 3, 6)
    List(6, 5, 3, 0)
    true

  • 相关阅读:
    「日常训练」Single-use Stones (CFR476D2D)
    「日常训练」Greedy Arkady (CFR476D2C)
    「Haskell 学习」二 类型和函数(上)
    「学习记录」《数值分析》第二章计算实习题(Python语言)
    「日常训练」Alena And The Heater (CFR466D2D)
    Dubbo 消费者
    Dubbo 暴露服务
    Rpc
    git fail to push some refs....
    Spring Cloud (6)config 客户端配置 与GitHub通信
  • 原文地址:https://www.cnblogs.com/AK47Sonic/p/7077833.html
Copyright © 2011-2022 走看看