使用 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”)