return返回语句可以跳过当前函数体中尚未执行的语句,立即退出当前函数,并设置当前函数的返回值。
返回语句的语法1:return;
返回语句的语法2:return 返回值;
返回值可以是除数组字面量以外的任意表达式。若省略,则隐式返回0。
若函数体内存在多个返回语句,要么全部隐式返回0,要么全部显式设置相同尺寸的返回值。
返回值和当前函数的值类型标签需一致,否则触发警告:标签不匹配。
若当前函数的调用方试图用变量复制返回值,但函数并未被显式设置返回值,则会触发警告:函数需要设置返回值。
若返回值是数组,外部插件得到的是数组的相对地址(无法跨插件访问)。当前插件会得到数组的副本。
示例:
#include <amxmodx>
static func(bool:p)
{
new array[] = "??????";
if (p) return array; // 跳过当前函数体中尚未执行的语句,立即退出并设置返回值
array = "114514";
return array; // 退出并设置返回值
}
static Float:func2()
return random_float(10.0, 20.0); // 返回值和函数的值类型标签需一致(Float标签)
public plugin_precache()
{
register_plugin("测试插件1", "1.0.0", "插件作者");
server_print("[AMXX]分支1返回值:%s 分支2返回值:%s", func(false), func(true));
} // 自然退出函数