groovy – 为什么意外的令牌:*在两行操作时
发布时间:2020-12-14 16:28:47 所属栏目:大数据 来源:网络整理
导读:在1.8控制台中运行以下命令: def accessories = nullfinal int prime = 31;int result = 1;result = prime * result + ((accessories == null) ? 0 : accessories .hashCode()); 我得到一个编译错误说明: 意外的令牌:*在第5行,列:13 然而,当我将“*结果
在1.8控制台中运行以下命令:
def accessories = null final int prime = 31; int result = 1; result = prime * result + ((accessories == null) ? 0 : accessories .hashCode()); 我得到一个编译错误说明: 意外的令牌:*在第5行,列:13 然而,当我将“*结果”移动到前一行时,它会编译并运行得干净利落.我搜索过试图找到一个解释,但到目前为止没有运气.谁能解释一下? def accessories = null final int prime = 31; int result = 1; result = prime * result + ((accessories == null) ? 0 : accessories .hashCode()); 解决方法
因为Groovy的语句不是由;而是由换行符分隔.它无法知道下面的行是上面一行语句的延续.你可以逃脱换行符:
int i = 10 * 9 assert i == 90 更新: 实际上,Groovy确实从上面的行中识别了一些语句.至少点被识别: assert [1,2] .join("") .padLeft(4,"a") == "aa12" 还有一个声明,以及 – 和?(可能更多)could be methods: def m = "aa" - m // fails with "No signature of method: java.lang.String.negative()" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |