Pop quiz !
question 1
Supposons que vous ayez une fonction GetCurrentValue qui récupère la valeur actuelle de certains objets d'interface utilisateur et renvoie un (.) manquant pour d'autres.Supposons que vous ayez une liste d'objets d'interface (AllInterfaceObjects).
Est-ce que ça va marcher?
UserValues = Transform Each({object}, AllInterfaceObjects, GetCurrentValue(object));
FilteredValues = Filter Each({value}, UserValues, !Is Missing(value));Réponse:
Voir plus...Ça dépend de quoi
type des valeurs que GetCurrentValue renvoie.
Supposons que GetCurrentValue renvoie (case à cocher << Obtenir les indices sélectionnés ()) pour les éléments de case à cocher.Si vous appliquez IsMissing à la liste des indices, vous n'obtenez pas de littéral booléen, vous obtenez une liste de booléens.
!IsMissing({1,2,3}) = {1,1,1}Parce qu'une liste de booléens n'est pas True, Filter Each la supprimera !Cela signifie que FilteredValue ne contiendra pas votre liste, même si votre liste ne manquait pas.
question 2
Comme vous le savez peut-être ou non, Créer une connexion à la base de données est une fonction permettant de créer des connexions à la base de données.Il renvoie une connexion à la base de données en cas de succès et manquante en cas d'échec.
Est-ce que ça marche?
connection = Create Database Connection(magicString);
if( !Is Missing(connection),
RunSomeQuery(connection),
Print("I have failed to connect")
);Réponse:
Voir plus...Nan.Is Missing renvoie une erreur, se plaignant qu'il attend des valeurs numériques.
Ma proposition
Utilisez les mots manquants (.) et manquants de manière plus disciplinée.
- N'enfilez pas comme par magie la fonction dans les listes, dites-moi si la variable contenant la liste est manquante ou non.
- Si Is Missing ne peut pas gérer votre succès, n'utilisez pas Missing pour signaler un échec.