突击测验!
问题 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 来表示失败。