Groovy字符串数组
我知道在Groovy中不使用花括号来初始化数组,但我注意到一件奇怪的事情 为什么groovy在初始化这样的数组时不给出编译器错误Groovy字符串数组,groovy,Groovy,我知道在Groovy中不使用花括号来初始化数组,但我注意到一件奇怪的事情 为什么groovy在初始化这样的数组时不给出编译器错误 String emailAddress = "test@gmail.com"; String [] var = {emailAddress}; println var[0]; 输出:com.test.examples.GroovyTest$\u main_closure1@12e4860e 当我尝试这样声明时,我得到错误: String [] var = {"a
String emailAddress = "test@gmail.com";
String [] var = {emailAddress};
println var[0];
输出:com.test.examples.GroovyTest$\u main_closure1@12e4860e
当我尝试这样声明时,我得到错误:
String [] var = {"a","b"};
有人能解释一下吗?当你这样做时:
String [] var = {emailAddress};
String [] var = {"a","b"};
这将创建一个闭包
,该闭包返回一个字符串电子邮件地址
,然后将该闭包填充到一个字符串数组中(通过对其调用toString()
),正如您告诉它的那样;-)
所以var
等于['ConsoleScript0$\u run_closure1@60fd82c1']
(或类似,取决于运行内容的位置)
当您这样做时:
String [] var = {emailAddress};
String [] var = {"a","b"};
右侧不是有效的闭包,因此脚本无法解析
你想要的是:
String[] var = ['a', 'b']
或:
当您这样做时:
String [] var = {emailAddress};
String [] var = {"a","b"};
这将创建一个闭包
,该闭包返回一个字符串电子邮件地址
,然后将该闭包填充到一个字符串数组中(通过对其调用toString()
),正如您告诉它的那样;-)
所以var
等于['ConsoleScript0$\u run_closure1@60fd82c1']
(或类似,取决于运行内容的位置)
当您这样做时:
String [] var = {emailAddress};
String [] var = {"a","b"};
右侧不是有效的闭包,因此脚本无法解析
你想要的是:
String[] var = ['a', 'b']
或:
谢谢…现在我明白了。谢谢…现在我明白了。