簡體   English   中英

Groovy閉包返回值與代碼結構無關

[英]Groovy closure return value independent of code structure

我在build.gradle中有一些代碼

test {
    doFirst {
        def profile = System.getenv("...")
        if (profile == "dev") {
            println "1: if start"
            // ...
            println "2: if end"
        }
    }
}

最后一行(“ 2:如果結束”)仍然執行,即使配置文件不是“ dev”

看起來很時髦,不在乎代碼結構:它簡單地返回最后一行作為閉包的結果

因為如果我將代碼修改為:

test {
    doFirst {
        def profile = System.getenv("...")
        if (profile == "dev") {
            println "1: if start"
            // ...
            println "2: if end"
        }
        println "3: after if"
    }
}

然后,以這種方式,如果概要文件不是“ dev”,則一切正常-在檢查語句groovy之后執行“ 3:if”之后的行
這是錯誤或功能嗎? :)

是的,正如所評論的,這僅在調試器中-groovy可以正常工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM