정수를 Erlang의 문자열로 변환
알아요, Erlang 문자열은 어떤 대가를 치르더라도 피해야합니다 ...
하지만 그렇게하지 않으면 5에서 "5"를 어떻게 생성합니까?
특히 스트림에 인쇄하는 대신 형식화 된 문자열을 반환하는 io : format ( "~ p", [5]) 같은 것이 있습니까?
다음은 아마도 가장 좋은 방법은 아니지만 작동합니다.
1> lists:flatten(io_lib:format("~p", [35365])).
"35365"
편집 : 다음 기능이 유용하다는 것을 발견했습니다.
%% string_format/2
%% Like io:format except it returns the evaluated string rather than write
%% it to standard output.
%% Parameters:
%% 1. format string similar to that used by io:format.
%% 2. list of values to supply to format string.
%% Returns:
%% Formatted string.
string_format(Pattern, Values) ->
lists:flatten(io_lib:format(Pattern, Values)).
편집 2 (댓글에 대한 응답으로) : 위의 기능은 Erlang을 배우기 위해 얼마 동안 작성한 작은 프로그램에서 나왔습니다. 나는 문자열 포맷 기능을 찾고의 행동을 발견 io_lib:format/2
내 erl
직관, 예를 들어 :
1> io_lib:format("2 + 2 = ~p", [2+2]).
[50,32,43,32,50,32,61,32,"4"]
당시 저는 @archaelus가 언급 한 출력 장치의 '자동 병합'동작을 인식하지 못했기 때문에 위 동작이 제가 원하는 것이 아니라는 결론을 내 렸습니다.
오늘 저녁, 나는이 프로그램으로 돌아가 string_format
위 의 함수 호출을 io_lib:format
. 이로 인해 발생한 유일한 문제는 평면화 된 문자열을 예상했기 때문에 실패한 몇 가지 EUnit 테스트였습니다. 이들은 쉽게 고쳐졌습니다.
이 기능을 사용하면 정수를 문자열로 변환하는 것이 과도하다는 @gleber 및 @womble에 동의합니다. 그게 전부라면 integer_to_list/1
. 키스!
또한 integer_to_list/1
추악함없이 원하는 것을 정확히 수행하는.
문자열은 목록입니다.
9> integer_to_list(123).
"123"
여담 혹시 수레의 문자열 표현을 처리해야하는 경우로서 당신은 봐야 작업 밥 폴리 토가에서 수행했다고 mochinum .
목록 : concat ([숫자]). 또한 작동합니다.
참조 URL : https://stackoverflow.com/questions/588003/convert-an-integer-to-a-string-in-erlang
'Nice programing' 카테고리의 다른 글
Eclipse가 시작되지 않지만 오류가 표시되지 않습니다. (0) | 2020.12.27 |
---|---|
belongsToMany 관계가 존재하는지 확인-Laravel (0) | 2020.12.27 |
AppCompat 21에서 Light.DarkActionBar 테마를 사용하여 ActionBar 제목 텍스트 색상 변경 (0) | 2020.12.27 |
모든 테이블과 필드를 MYSQL의 utf-8-bin 데이터 정렬로 변경하는 스크립트 (0) | 2020.12.27 |
jQuery : 일시적으로 스타일을 변경 한 다음 원래 클래스로 재설정 (0) | 2020.12.27 |