突擊測驗!
問題 1
假設您有一個函數 GetCurrentValue,它獲取用戶某些界面對象的當前值,並為其他人返回缺失的 (.)。假設您有一個接口對象列表 (AllInterfaceObjects)。
這會起作用嗎?
UserValues = Transform Each({object}, AllInterfaceObjects, GetCurrentValue(object));
FilteredValues = Filter Each({value}, UserValues, !Is Missing(value));回答:
查看更多...根據什麼
種類GetCurrentValue 返回的值。
假設 GetCurrentValue 為複選框項返回(checkbox << Get Selected Indices())。如果將 IsMissing 應用於索引列表,則不會獲得布爾文字,則會獲得布爾值列表。
!IsMissing({1,2,3}) = {1,1,1}因為布爾值列表不是 True,Filter Each 將刪除它!這意味著 FilteredValue 將不包含您的列表,即使您的列表沒有丟失。
問題2
您可能知道也可能不知道,創建數據庫連接是一個用於創建數據庫連接的函數。它在成功時返回一個數據庫連接,在失敗時返回一個數據庫連接。
這行得通嗎?
connection = Create Database Connection(magicString);
if( !Is Missing(connection),
RunSomeQuery(connection),
Print("I have failed to connect")
);回答:
查看更多...不。Is Missing 返回一個錯誤,抱怨它需要數字值。
我的建議
更嚴格地使用缺失 (.) 和 Is Missing。
- 不要通過列表神奇地將函數線程化,告訴我保存列表的變量是否丟失。
- 如果 Is Missing 無法處理您的成功,請不要使用 missing 來表示失敗。