2013-04-19 1 views
2

내 Q 스크립트에서 명령 인수의 수를 확인하고 .z.x가 원하는 인수 수와 일치하지 않으면 오류 메시지를 반환합니다. 지금까지 나는이 줄을 함께했다 :kdb 스크립트에서 명령 줄 인수를 확인하는 방법은 무엇입니까?

if[count .z.x < 4; '`BadUsage] 
"Arguments OK" 

내가 상관없이 내가 사용 인수의 수, 문은 항상 반환하는 경우`BadUsage 과거를 얻을하지 않습니다.

올바른 인수 수를 확인하고 오류 메시지를 인쇄 한 다음 스크립트를 종료하려면 어떻게합니까?

답변

3

왜냐하면 문장은 오른쪽에서 왼쪽으로 평가되기 때문입니다. 따라서 .z.x < 4가 먼저 계산 된 다음 그 결과의 개수가 계산됩니다.

q)count .z.x < 4 
0 
q)4 > count .z.x 
1b 
+0

감사합니다. 오류 메시지를 인쇄하고 BadUsage 코드를 반환하고 스크립트를 종료하려면 어떻게합니까? 조건부 평가 후에 if 문에 여러 명령어를 포함시키는 방법을 찾지 못했습니다. –

+1

이와 비슷한 : q) if [4> count .z.x; 0N! "BadUsage"; exit [0]]. 위의 진술 문과 관련된 문제는 일단 ''에 도달하면 그 진술은 평가되지 않습니다. – user1895961

관련 문제