Erlang - 如何连接位串

Par*_*ore 1 erlang bitstring

我正在尝试连接位串

 cowboy_req:reply(

               200, #{<<"content-type">> => <<"text/html">>},

               <<"<div style='color:#FF0'>">> ++ cowboy_req:host(Req) ++ <<"</div>">> , 

               Req
    )
Run Code Online (Sandbox Code Playgroud)

但由于++运营商的原因,它会产生运行时错 如何连接两个位串?

Dog*_*ert 5

你在这里有正常的二进制文件,而不是比特串.

如果你真的想要连接它们,存储cowboy_req:host(Req)在一个变量中,然后连接3个二进制文件:

Host = cowboy_req:host(Req),
cowboy_req:reply(
    200,
    #{<<"content-type">> => <<"text/html">>},
    <<"<div style='color:#FF0'>", Host/binary, "</div>">>, 
    Req
)
Run Code Online (Sandbox Code Playgroud)

请注意,由于cowboy_req:reply接受iodata(),返回如下列表通常更有效:

cowboy_req:reply(
    200,
    #{<<"content-type">> => <<"text/html">>},
    [<<"<div style='color:#FF0'>">>, cowboy_req:host(Req), <<"</div>">>], 
    Req
)
Run Code Online (Sandbox Code Playgroud)