/return
原文:Commands/return;源修订:3826031。
本命令为 Java 版独有,所需权限等级为 2。可嵌入函数中,控制其执行。
本命令结束函数执行,并设置函数的成功状态与返回值。这些值作为 /function 的输出值返回,或供 execute if function ... 检查。本命令还可在第一个分支处结束具有多个执行分支的 /execute 命令。
用法
将本命令放入函数,可使函数在指定行停止,并设置函数的返回值和成功状态。
- 若由
function命令调用函数,返回值和成功状态作为function的输出值返回,随后可通过execute store存储。 - 若由
execute if function调用函数,则检查返回值是否不为0。
与其他命令一样,可将本命令放在 execute (if|unless) ... run 或可能终止的分支 execute 之后,使其仅在特定条件下执行。这样函数便可在不同条件下于不同行结束,实现更复杂的行为。例如,以下函数模拟 if-else 语句:
# if (@s[tag=test1]) then return function("test1")
execute if entity @s[tag=test1] run return run function test1
# else if (@s[type=player]) then return function("test2")
execute if entity @s[type=player] run return run function test2
# else return function("test3")
return run function test3
若本命令跟在一个具有多个执行分支的 execute 之后,第一次执行 return 后,该 execute 也会结束,因此仅执行第一个运行到本命令的分支。可以利用这一点确保命令仅执行一次。例如:
/execute as @e[type=zombie,sort=nearest] at @s if block ~ ~-1 ~ grass_block run return run tp @s Steve
若存在站在草方块上的僵尸,这会将其中距离最近的一只传送给 Steve。注意,在函数中执行该命令也会结束函数。
若 return run 后接一个具有多个执行分支的 execute,同样只执行第一个分支,随后结束 execute。
return run execute ... run <command> 与 execute ... run return run <command> 的唯一区别在于:前者的 return 总会执行,若 execute 提前终止,则返回失败和数值 0;后者在 execute 提前终止时不会执行 return。
若 return run 后接一个调用标签中多个函数的 function,任一函数第一次执行 return 后,整个 function 命令也会结束。另见 /function。
在函数内执行 return 时,它设置函数的返回值与成功状态,并将其返回给调用该函数的 function 或 execute if function ...。不过,return 命令本身也有输出值。在 execute store ... run 之后执行时,可在结束 execute 和函数的同时,存储 return 自身的 success 值和 result 值。直接在命令方块中执行时,命令方块会记录 return 的成功次数。
语法
return <value>
成功结束所在函数,并将函数返回值设置为指定整数。
return fail
以失败状态结束函数,返回值为 0。
return run <command>
执行指定命令,结束所在函数,并将函数的成功状态和返回值分别设为该命令的 success 值和 result 值。若该命令为分支 execute,则仅执行第一个分支。
参数
value(integer):作为函数返回值的整数。须为 -2147483648 至 2147483647(含端点)的 32 位有符号整数。command:要执行的命令。
结果
命令不完整或任一参数指定不正确时无法解析。return fail 始终失败。return run <command> 在以下情形失败:
- 指定命令失败;若为
execute,则指其第一个分支失败。 - 指定命令为
execute,且该命令提前终止。 - 指定命令为
function,且该命令为空返回。 - 指定命令为
execute ... run function,且execute第一个分支中的function为空返回。
其他情况成功。
输出
| 命令和情形 | 成功次数 | 成功值 | 结果值 |
|---|---|---|---|
return <value> 成功 |
1 | 1 | value 的值 |
return fail 失败 |
0 | 0 | 0 |
return run <command> 失败 |
0 | 0 | 0 |
return run <command> 成功 |
1 | 1 | 指定命令的 result 值;若为 execute,则为第一个分支的 result 值 |
上表为 return 命令自身的输出。若在函数中执行,还会设置函数的成功状态和返回值:成功状态等于 return 的 success 值,返回值等于 return 的 result 值。
来源为 Minecraft Wiki;本中文翻译/改编按 CC BY-NC-SA 3.0 共享。