/return

/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 共享。