gpt4 book ai didi

kdb+/q : Check if argument has been supplied to the function call

转载 作者:行者123 更新时间:2023-12-02 15:27:20 25 4
gpt4 key购买 nike

假设我们有带有两个参数的函数 fun,第二个参数是可选的。如何在函数内检查是否提供了第二个可选参数并采取相应行动?

fun: {[x;optarg] $["optarg was supplied" like "optarg was supplied";"behavior 1"; "behavior 2"] }
fun[1;2] / behavior 1
fun[1] / behavior 2

```

最佳答案

我认为这是不可能的。提供少于指定数量的参数会导致 projection .

一个很好的选择是让你的函数接受一个参数——一个列表。然后您可以检查列表中的每个元素是否存在。

f:{[l] $[1=count[l]; 
/ do something with first arg only;
/ do something with both args ]
}

或者您可以让函数接受字典(这允许您在函数中设置默认值)。

q)f:{[dict] def:`a`b`c!10 20 30; 
def:def upsert dict;
:def[`a] + def[`b] + def[`c] }


q)f[`a`b!5 10]
45

q)f[`a`c!5 10]
35

关于kdb+/q : Check if argument has been supplied to the function call,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29704890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com