Sau đây có lẽ không phải là cách thú vị nhất, nhưng nó hoạt động:
1> lists:flatten(io_lib:format("~p", [35365])).
"35365"
EDIT: Tôi đã phát hiện ra rằng các chức năng sau đây do thỏa thuận hữu ích:
%% 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)).
EDIT 2 (để trả lời các bình luận): chức năng trên xuất phát từ một chương trình nhỏ mà tôi đã viết một lúc để học Erlang. Tôi đang tìm kiếm một chức năng chuỗi định dạng và phát hiện các hành vi của io_lib:format/2
trong erl
phản trực giác, ví dụ:
1> io_lib:format("2 + 2 = ~p", [2+2]).
[50,32,43,32,50,32,61,32,"4"]
Vào thời điểm đó, tôi đã không nhận thức được 'tự động làm phẳng' hành vi của các thiết bị đầu ra nói bởi @archaelus và do đó kết luận rằng hành vi trên không phải là những gì tôi muốn.
Tối nay, tôi đã quay lại chương trình này và thay thế cuộc gọi tới chức năng string_format
ở trên với io_lib:format
. Các vấn đề duy nhất mà điều này gây ra là một vài bài kiểm tra của EU không thành công vì họ đang mong đợi một chuỗi phẳng. Đây là một cách dễ dàng cố định.
Tôi đồng ý với @gleber và @womble rằng việc sử dụng hàm này là quá mức cần thiết để chuyển đổi số nguyên thành chuỗi. Nếu bạn chỉ cần sử dụng integer_to_list/1
. HÔN!
Nguồn
2009-02-25 21:48:24
Tránh mọi chi phí? Nơi mà bạn có được ý tưởng đó? Có một số mối quan tâm về hiệu suất và các phiền toái khác, nhưng chúng vẫn là một kiểu dữ liệu cốt lõi và sự lựa chọn mặc định cho các chuỗi. – cthulahoops
Tôi nói với lưỡi trong má. Nếu tôi tin chắc rằng bạn không bao giờ nên sử dụng chúng, tôi sẽ không hỏi câu hỏi này. Mặt khác, mô tả chúng như là một "loại dữ liệu cốt lõi" có thể kéo dài mọi thứ một chút, theo quan điểm của tôi. – collapsinghrung
chuỗi trong erlang là một danh sách. nó là loại dữ liệu cốt lõi. giống như nhị phân hoặc nguyên tử. – Worker