美文网首页
Groovy变量作用域

Groovy变量作用域

作者: SMSM | 来源:发表于2018-03-16 12:33 被阅读208次

Groovy变量作用域

Groovy变量作用域有两个,要想成为全局作用域,需要用@Field标示

import groovy.transform.Field

@Field File configFile
@Field final KEY_CONFIG_NAME = 'pitaya_component.config'
@Field final KEY_MAIN_HOST = 'mainHost'
@Field final KEY_SUB_HOST = 'subHost'

configFile = new File(getRootDir(), KEY_CONFIG_NAME)
if (configFile.exists()) {
    configFile.delete()
}

void mainHostInclude(String[] projectPaths) {
    include(projectPaths)
    projectPaths.each { projectName ->
        configFile.append(KEY_MAIN_HOST + projectName + "\n")
    }
}

mainHostInclude ':app'

Groovy 语法each中用return

    private boolean isNotHost2(String projectName) {
        mComponentConfigMap.values().forEach({ contentList ->
            contentList.forEach({ line ->
                System.out.println(line + " is  " + false)
                return false
            })
        })

        System.out.println(projectName + " is  " + true)
        return true
    }

输入结果

subHost:setting is  false
subHost:printer is  false
mainHost:app is  false
setting is  true

不合常理,return了,咱么for循环还在继续。我看看如下forEach的源码,原理闭包是一个Consumer类,在Consumer类中的方法调用return,只是退出了Consumer。外层for没有退出。那我们该如何整体退出呢?
自己改写为 for方式

    default void forEach(Consumer<? super T> action) {
        Objects.requireNonNull(action);
        for (T t : this) {
            action.accept(t);
        }
    }
``

相关文章

  • Groovy变量作用域

    Groovy变量作用域 Groovy变量作用域有两个,要想成为全局作用域,需要用@Field标示 Groovy 语...

  • Groovy脚本中声明变量的作用域

    在groovy脚本中声明的变量,比如脚本的顶部: 如果是定义过的变量,作用域是定义它的本地域 本地域的作用域局限于...

  • 第四章 作用域和内存问题

    变量的作用域? 变量作用:起作用域:区域,范围变量起作用的地方 变量的生命周期,变量生于这个作用域,死于这个作用域...

  • JS作用域链

    作用域 变量的作用域 变量的作用域有两种:全局变量和局部变量。 全局作用域: 最外层函数定义的变量拥有全局作用域,...

  • 变量作用域

    变量作用域:静态作用域、动态作用域JS变量作用域:JS使用静态作用域JS没有块级作用域(全局作用域、函数作用域等)...

  • 【前端】-023-JavaScript-进阶篇-变量作用域

    变量作用域 JavaScript中变量的作用域 采用静态作用域(变量定义的位置决定了变量的引用) 没有块级作用域,...

  • php基础知识回顾-1

    1.变量作用域 php变量有四种作用域:局部作用域、全局作用域,静态作用域、参数作用域 在局部调用全局变量需要使用...

  • js中作用域与作用域链

    js中作用域与作用域链 作用域 *作用域基本概念 作用域一般指变量的作用范围,变量分为全局变量和局部变量,对应的作...

  • 作用域与变量提升

    作用域与变量提升 作用域 JS中变量的作用域有全局作用域和局部作用域两种,作用域简单来讲就是变量与函数的可访问范围...

  • 关于作用域链

    作用域 先来谈谈变量的作用域变量的作用域无非就是两种:全局变量和局部变量。全局作用域:最外层函数定义的变量拥有全局...

网友评论

      本文标题:Groovy变量作用域

      本文链接:https://www.haomeiwen.com/subject/mlpaxftx.html