存在q / kdb中的函数

时间:2014-07-23 23:04:37

标签: kdb

我需要在q / kdb中编写一个函数,它接受一个变量v,如果v是,则返回1b 已定义,如果不是,则为0b:

$ a:2
$ doesExist`a
1b
$ doesExist`b
0b

任何想法都赞赏。

3 个答案:

答案 0 :(得分:9)

q)doesExist:{x~key x}
q)a:2
q)doesExist`a
    1b
q)doesExist`b
    0b

答案 1 :(得分:6)

key`.

将为您提供当前命名空间中的所有变量。

同样

key`.foo

将为您提供.foo命名空间中的所有变量。

扩展名:

`a in key`.

将为您提供

之后的布尔值

答案 2 :(得分:4)

根据MdSalih的回答和小册子的评论,也许我们可以测试相反的情况。如果未定义变量,键会输出一个空列表,我们应该测试它,这可以解决键控表问题。

q)AnswerToLifeUniverseAndEverything:42
q)doesExist:{not () ~ key x}
q)doesExist[`AnswerToLifeUniverseAndEverything]
1b
q)doesExist[`UltimateQuestionToLifeUniverseAndEverything]
0b