我遇到过以下使用 -1 命令的函数
q)whereami:{-1 "cd ~ ",system "cd";} / defining the function
q)whereami[] / executing the function
cd ~ /Users/utsav/kdbScripts/db
你能解释一下这个函数中-1命令的用途吗?
似乎它用于以非字符串格式在控制台中提供输出,但不确定是否是这种情况。
如果我尝试不带 -1 和分号的函数,然后在控制台中显示输出,它将以字符串格式显示输出。
whereami:{"cd ~ ",system "cd"}
whereami[]
"cd ~ /Users/utsav/kdbScripts/db"
是的
-1
,打印到标准输出https://code.kx.com/q/basics/handles/
字符串显示嵌入的特殊字符:
如果我们想
\n
显示为换行符和\t
制表符,我们可以打印到标准输出-1
(或者1
- 区别在于-1
将在输出末尾自动打印换行符)-1
在打印文本后返回-1
,因此通常用于;
抑制返回,因为它在几乎所有情况下都没有那么有用。-1 用于将字符串(数组)结果打印到控制台。返回值将是连接句柄而不是字符串。在没有-1的情况下,它按原样返回字符串结果。当您需要将信息记录到正在运行的 Q 进程的控制台时,-1 很有用。
这里有关于不同永久系统句柄的更多信息:https://code.kx.com/q/basics/handles/#file-stdout-stderr
值得注意的是,neg 句柄在打印时会添加一个“\n”换行符。如果您想在一行中打印/登录,可以使用 1。