KDB 中的变量作用域
Variable scoping in KDB
getQuotes: {[sym;start;end]
url: f[sym;start;end]
{some_test} {request.quotes[url;x`next_page_token]} \ request.quotes[url;0b]
}
我有一个 while
循环。我遇到的问题是 url
超出了 while lambda:
的范围
'url
[2] alpaca.q:47: .alpaca.getQuotes@:{request.quotes[url;x`next_page_token]}
^
我已经读到 post 这是设计使然:
,但它并没有真正给我一个解决方案。
我试过用一元包起来,但没用。
我用 url::
使 url
全局化,这个 有效 ,但不是很干净。
是否有将 url
传递到 lambda 的首选模式?
您可以将变量作为参数传递到内部 lambda 表达式中:
getQuotes: {[sym;start;end]
url: f[sym;start;end]
{some_test} {[x;url]request.quotes[url;x`next_page_token]}[;url] \ request.quotes[url;0b]
}
getQuotes: {[sym;start;end]
url: f[sym;start;end]
{some_test} {request.quotes[url;x`next_page_token]} \ request.quotes[url;0b]
}
我有一个 while
循环。我遇到的问题是 url
超出了 while lambda:
'url
[2] alpaca.q:47: .alpaca.getQuotes@:{request.quotes[url;x`next_page_token]}
^
我已经读到 post 这是设计使然:
我试过用一元包起来,但没用。
我用 url::
使 url
全局化,这个 有效 ,但不是很干净。
是否有将 url
传递到 lambda 的首选模式?
您可以将变量作为参数传递到内部 lambda 表达式中:
getQuotes: {[sym;start;end]
url: f[sym;start;end]
{some_test} {[x;url]request.quotes[url;x`next_page_token]}[;url] \ request.quotes[url;0b]
}