2009-06-11 7 views
1

ETS를 배우고 있습니다. 내가 그랬어 : ETS 매칭 문제

Sometab = ets:new(sometable, [bag]). 
ets:insert(Sometab, {109, ash, 8}). 

은 그럼 내가 입력 :

ets:match(Sometab, {109, ash, '$1'}). 

을하지만 대신 8을 얻는 - 나는 점점 오전 : 출력으로 ["\b"]!

답변

4

정답을 얻고 있습니다. 그러나, backspace의 ASCII 코드는 8이므로 erlang 쉘은 [8]"\b"으로 인쇄합니다.

Erlang에는 문자열 유형이 없습니다. erlang의 문자열은 간단히 정수리스트로 표현되며 Erlang 쉘은 아스키 범위 만있는 정수가리스트에 포함되어 있으면이리스트를 문자열로 출력합니다.

이것은 실제로 때때로 혼란 스러울 수 있습니다.

+0

오! 그래서 이것을 출력으로 브라우저에 전달하면 잘 표시됩니다. –

+0

음, 그래 ... 일종의. [ "\ b"]는 [[8]과 똑같습니다. 따라서 정수로 가려면 [[X]] = [ "\ b"]와 같은 것을 할 수 있습니다. 이제 X는 정수 8을 포함합니다. – Jonas