关于 return 语句的使用

想问一下,return 语句可以在 if 块中使用么,按照正常的编程逻辑来理解,应该是没有问题的,但今天遇到了一个问题。

运行环境

操作系统:MacOS 15.3.1 (24D70) / Apple M1 Max

集算器版本:社区版 /20250117(20250218)

JDK 版本:1.8

imagepng

问题复现

代码:

if v==null	
	return "Hello SPL!\n"
if v=="t"	
	return "Hello Tester!\n"
return "Hello "/upper(""/v)/""	

imagepng

参数:

imagepng

执行情况 1(MacM1,IDE):

1、v==null
imagepng
2、v==t
imagepng
3、v==t123
imagepng

执行情况 2(MacM1,IDE-call 调用)

imagepng

执行情况 3(MacM1,http):

imagepng

问题说明

可以看出来

  1. 【正常】在 IDE 中直接执行,结果都是正确的,return 位置的值也正确,见 执行情况 1(MacM1,IDE)
  2. 【正常】在 IDE 中其他 spl 脚本中 call 调用,返回的值也是正确的,见 执行情况 2(MacM1,IDE-call 调用)
  3. 【问题】通过 http 进行访问时,if 条件下的 return 似乎都没有正确执行,在 v 未指定、为 null、为 t 等的情况下,都无法正常返回在非 if 条件值的时候,比如 t123、asder,都是正常 return 返回的。见 执行情况 3(MacM1,http)
    在 http 日志中的报错为 JSON 解析异常:
    imagepng