使用 isempty 检查函数参数?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我有一个函数叫做表存在。您将表名称作为字符串传递给它,如果该表存在则返回 true,如果不存在则返回 false。我最近决定通过检查输入参数是否绑定到任何东西来更新它,但它不喜欢它。
例如:
是空的( XYZ )
在日志中返回 1,这意味着 xyz 未绑定到任何内容。但如果我尝试
表存在( XYZ )
我收到此错误消息:
错误:名称未解析:访问或评估“xyz”、xyz 时存在 xyz
这是函数:
表存在=功能( {表名} ,
{默认本地} ,
tbl_exists_flag = 0 ;
如果( !是空的(表名) ,
// 遍历所有表,看看是否存在这个表
表数=不可表() ;
为了(我= 1 ,我<=表数,我++,
一个名字=数据表(我) <<获取姓名;
如果(一个名字==表名,
tbl_exists_flag = 1 ;
休息() ; // 既然我们找到了表就跳出循环
) ;
) ;
) ;
tbl_exists_flag ;
) ;
回复:使用 isempty 检查函数参数?必须计算 xyz 变量,以便将其值传递到函数中。
我可以想到两种方法来处理这个问题。 如果您使用给定变量,则可以在脚本开头将其分配给 Empty()。 xyz = 空()。 如果它后来得到一个名字,那么它就会通过;如果它永远没有名字,那么它就是空的。
另一种方法是将函数调用包装在 try 中,并在将未定义变量传递给函数之前处理未定义变量的情况。 try(table_exists(xyz),“无表名”)
回复:使用 isempty 检查函数参数?table_exists 函数是通用的,所以我想在使用空变量调用它时优雅地处理这种情况。
回复:使用 isempty 检查函数参数?我认为出现错误消息是因为您将 xyz (未定义的 JSL 变量)传递给函数。 我认为 JSL 正在尝试解析 xyz (在运行函数的代码之前),但它失败了,因为它是空的。 尝试在函数调用中将 xyz 放在引号中:
表存在(“xyz”)