zoukankan      html  css  js  c++  java
  • Groovy语言学习--语法基础(2)

    集合和闭包

    因为之前没接触过C++等,对指针也一窍不通。个人不成熟的了解 闭包是一种数据类型,可以很方便的执行一段独立的代码 简化方法的调用

    package groovy
    
    /**
     * Groovy容器
     */
    class GroovyCabin{
    }
    
    /*
     * List 有丰富的api idea中可用listA. 查看
     */
    def listA = [5,"string","false"]
    print listA
    println listA[1]
    println listA.size()
    listA.add("moniter")
    println listA.size()
    listA[9] = 9
    println listA
    listA << 7   //在listA里添加数据 相当于listA.add(7)
    println listA
    
    /*
     * Map
     */
    
    def map = [key1:"john",key2:"tom",key3: listA]
    println map.keySet()
    println map.values()
    println map.get("key2") //返回key2的值
    map.put("key4", "company")
    println map
    //遍历
    Iterator it = map.iterator()
    while (it.hasNext()) {
        println it.next()
    }
    println map.containsValue("tom") 
    println map.containsKey("key1")
    Set set = map.keySet()  //把map的Key值转换为set
    println set
    
    /*
     * 闭包 Clouser 闭包是一种数据类型,它代表了一段可执行的代码
     * 
     def xx = {
         params -> code
     }
     
      def xx = {
         code
     }
     
     */
    
    def clouserA = {
        String param1,int param2 ->
        println "this is code"
        return param1 + "welcome" + param2
    }
    /*
     * 闭包定义好后,要调用它的方法就是 闭包对象.call(参数)  or 闭包对象(参数)
     */
    println clouserA.call("this is code",100)
    println clouserA("A",200)
    
    
    def funC = {
        -> "abced"
    }
    println funC.call()
    
    def list = [1,2,3] //定义一个list
    list.each{
        println it
    }
    
    //当函数的最后一个参数是闭包的话,可以省略圆括号
    
    def funD(int num,String str,Closure closure) {
        println num+str
        closure() //调用闭包
    }
    
    funD(4,"test",{
        println "close package"
    })
  • 相关阅读:
    JNI和NDK的关系
    JNI和NDK的关系
    Android SDK结构分析
    设计模式:单例模式
    编程规范:占位符
    设计模式:工厂模式
    代码整洁之道----读书笔记
    个人编程规范
    装饰器函数
    异常处理
  • 原文地址:https://www.cnblogs.com/slowcity/p/10157045.html
Copyright © 2011-2022 走看看