gpt4 book ai didi

windows - 为什么从函数返回的 gstrings 串联是一个空字符串 - Groovy 1.7.4

转载 作者:可可西里 更新时间:2023-11-01 11:39:31 24 4
gpt4 key购买 nike

我有以下代码:

public class TestGr
{
static String aaa = "wwww";

public static void main(args)
{
println "["+getAAA()+"]";
println "[" + getBBB() +"]";
}

static String getAAA()
{
return ""
+ "${aaa}"
}

static String getBBB()
{
return "" + "${aaa}"
}
}

这段代码的输出是:

[]
[wwww]

我不明白为什么在第一次调用时我得到一个空字符串。有人知道为什么换行符会改变函数的输出吗?

最佳答案

这是 groovy 被解析的方式。由于语句末尾的分号是可选的,因此换行符有时会有所不同。

getAAA() 被解析为两个语句,如下所示:

static String getAAA() {
return "";
+"${aaa}";
}

即使一元 + 运算符对字符串 arg 没有意义,但由于其动态特性,groovy 无法捕获它。字符串上可能有一个 postive() 元方法可以使其有效。

编辑:

为了更好地了解发生了什么,启动 groovyConsole 并加载您的脚本。从脚本菜单中选择“检查 AST”。你会看到这样的东西:

AST Browser Image

关于windows - 为什么从函数返回的 gstrings 串联是一个空字符串 - Groovy 1.7.4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3835074/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com