关于 return 语句的使用
想问一下,return 语句可以在 if 块中使用么,按照正常的编程逻辑来理解,应该是没有问题的,但今天遇到了一个问题。
运行环境
操作系统:MacOS 15.3.1 (24D70) / Apple M1 Max
集算器版本:社区版 /20250117(20250218)
JDK 版本:1.8
问题复现
代码:
if v==null
return "Hello SPL!\n"
if v=="t"
return "Hello Tester!\n"
return "Hello "/upper(""/v)/""
参数:
执行情况 1(MacM1,IDE):
1、v==null
2、v==t
3、v==t123
执行情况 2(MacM1,IDE-call 调用)
执行情况 3(MacM1,http):
问题说明
可以看出来
- 【正常】在 IDE 中直接执行,结果都是正确的,return 位置的值也正确,见 执行情况 1(MacM1,IDE)
- 【正常】在 IDE 中其他 spl 脚本中 call 调用,返回的值也是正确的,见 执行情况 2(MacM1,IDE-call 调用)
- 【问题】通过 http 进行访问时,if 条件下的 return 似乎都没有正确执行,在 v 未指定、为 null、为 t 等的情况下,都无法正常返回,在非 if 条件值的时候,比如 t123、asder,都是正常 return 返回的。见 执行情况 3(MacM1,http)
在 http 日志中的报错为 JSON 解析异常:
问题已修改,请下载最新的 jar 包:https://download.raqsoft.com.cn/esproc/jar/esproc-bin-20250313.jar