Encontrei a função abaixo que usa o comando -1
q)whereami:{-1 "cd ~ ",system "cd";} / defining the function
q)whereami[] / executing the function
cd ~ /Users/utsav/kdbScripts/db
Você poderia explicar qual é o uso do comando -1 nesta função?
Parece que é usado para fornecer a saída no console em formato não string, mas não tenho certeza se esse é o caso.
Se eu tentar a função sem -1 e ponto e vírgula e, em seguida, exibir a saída no console, ela exibirá a saída em formato de string.
whereami:{"cd ~ ",system "cd"}
whereami[]
"cd ~ /Users/utsav/kdbScripts/db"
Sim
-1
, a impressão está padronizadahttps://code.kx.com/q/basics/handles/
Uma string exibe caracteres especiais incorporados:
Se quisermos
\n
exibir como nova linha e\t
como guia, podemos imprimir como padrão-1
(ou1
- a diferença é-1
imprimir automaticamente uma nova linha no final da sua saída)-1
retorna-1
depois de imprimir o texto, por isso é comum usar;
para suprimir esse retorno, pois não é tão útil em quase todos os casos.-1 é usado para imprimir o resultado da string (array) no console. O valor de retorno seria o identificador de conexão e não a string. No caso sem -1, ele retorna o resultado da string como está. -1 é útil quando você precisa registrar informações no console do processo Q em execução.
Há mais informações aqui sobre os diferentes identificadores permanentes do sistema: https://code.kx.com/q/basics/handles/#file-stdout-stderr
Também é bom observar que o identificador neg adiciona uma nova linha “\n” ao imprimir. Se você quiser imprimir/registrar em uma única linha, você pode usar 1.