我有一些代码,我在其中获取 4 个值并用管道(“|”)将它们连接起来。目前它以下列方式实施:
列表:flatten(io_lib:format("~s~s~s~s~s",[Id, Delim, Date, Delim, Signature]))。
但是,我想知道更改为使用 string:join 是否有任何优势(除了看起来更干净)?
我有一些代码,我在其中获取 4 个值并用管道(“|”)将它们连接起来。目前它以下列方式实施:
列表:flatten(io_lib:format("~s~s~s~s~s",[Id, Delim, Date, Delim, Signature]))。
但是,我想知道更改为使用 string:join 是否有任何优势(除了看起来更干净)?
虽然string:join([Id,Date,Signature],"|").
和lists:flatten(io_lib:format("~s~s~s~s~s",[Id, Delim, Date, Delim, Signature])).
给出相同的结果,但string:join
还是首选,因为具有更好的可读性:
可读性是最重要的,因为在一个项目中代码经常被阅读很多次
它会稍微快一点,但更重要的是更容易阅读,正如我一直声称的“清晰为王”。
只是使用
[Id, $|, Delim,
$|, Date,
$|, Delim,
$|, Signature]
可能是有效的,因为它iolist()
已经是。所以你不必通过任何东西发送它。数据已经是您寻求的串联。为了这样做而操作数据并将其展平通常是一个错误,它充其量是浪费时钟周期并使用更多内存资源。