![]() |
|
||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|||||
| Related Concepts | ||
| operator |
has key
|
|
Return type: Boolean Returns true if the shelf contains a key with the given name, and false otherwise. Replacing
Returns: has with hasnt will reverse the results.
Syntax
shelf test:
shelf-name (has | hasnt) key string-expression
attribute shelf test:
specified? attribute (has | hasnt) key string-expression
or
specified? data-attributes (has | hasnt) key string-expression
has key is a test that determines if a shelf contains a key with the given string-expression.
hasnt key returns the opposite results.
has key can also be applied to an attribute shelf in a similar fashion.
The has key test can also determine whether an element has an attribute declared for it. It can be used on both the data-attributes and attributes shelves.
For example, the following code shows how has key can be used to test for a declared attribute:
global stream id-name
...
output attributes key id-name
when attributes has key id-name and
attribute key id-name isnt implied
In this example, the has key test is used to determine whether the switch shelf "assoc-list" currently contains an item with the name referred to by "%g(curr-key)".
global switch assoc-list variable initial {true, false, true}
global integer item-no
process
set key of assoc-list[1] to "black"
set key of assoc-list[2] to "gold"
set key of assoc-list[3] to "red"
submit "{gold}foo-stuff for report"
find "{" [ \ "}"]+ => curr-key "}"
do when assoc-list has key "%g(curr-key)"
set item-no to item of assoc-list{"%g(curr-key)"}
else
; An index of 0 means that the key wasn't found.
set item-no to 0
done
output "item-no = "
|| "d" % item-no
|| "%n"
; Output: "item-no = 2
; foo-stuff for report"
|
Related Concepts Attributes: list-valued Shelves |