2013-03-25 4 views
4

다른 유형의 여러 변수를 문자열로 연결하려고합니다. 이것은 잘 작동합니다 :string()을 호출 할 때 출력 차이가 발생합니다.

q)"select ", string[10:00:00] ," abc" 
"select 10:00:00 abc" 

내가 괄호로 문자열을 호출하면 출력이 다릅니다

q)"select ", string(10:00:00) ," abc" 
"s" 
"e" 
"l" 
"e" 
"c" 
"t" 
" " 
"10:00:00" 
," " 
,"a" 
,"b" 
,"c" 

내가있는 동안, 함수 문자열 유형 시간의 원자 매개 변수로 호출되는 첫 번째 예에서 생각 두 번째 호출 목록은 string을 호출하기 전에 작성됩니다.

출력은 두 번째 예에서 무엇을 나타 냅니까?

답변

3

문자열 [10:00:00]을 사용하면 입력 10:00:00에 문자열 함수가 호출됩니다. 문자열 (10:00:00), "abc"를 사용하면 "abc"에 실제로 조인 (10:00:00) 한 다음 결과를 문자열로 표시합니다. 실행은 오른쪽에서 왼쪽으로 수행된다는 것을 기억해야합니다.

q)(10:00:00) ," abc" 
10:00:00 
" " 
"a" 
"b" 
"c" 
q)string (10:00:00) ," abc" 
"10:00:00" 
," " 
,"a" 
,"b" 
,"c" 
+0

결과가 두 예제 모두에서 수직으로 인쇄되는 이유는 무엇입니까? 답안에서 각 명령에 의해 생성되는 유형은 무엇입니까? –

+0

"abc"는 4 문자 요소의 목록 일뿐입니다. 10:00:00에 가입하면 5 가지 요소가 혼합 된 목록이 생성됩니다. 'q) 카운트 (10:00:00), "abc"' (5). 목록 2 목록을 생성하려면 먼저 문자열을 등록해야합니다. q) 카운트 l : (10:00:00), "abc"( ) (2). 'q) l' (returns (10:00:00; "abc")) – user1895961

+0

ok, 두 번째 명령 출력의 쉼표는 string()에 대한 각기 다른 호출을 나타내므로 각 아톰 유형 (목록이 아님) 첫 번째 명령 결과 에서처럼). 나 맞아? –