2

ビット文字列を連結しようとしています

 cowboy_req:reply(

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

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

               Req
    )

++しかし、オペレーターが原因で実行時エラーが発生します。2 つのビット文字列を連結するにはどうすればよいですか?

4

1 に答える 1

6

ここにあるのは通常のバイナリであり、具体的にはビット文字列ではありません。

本当にそれらを連結したい場合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
)

cowboy_req:replyを受け入れるiodata()ため、通常は次のようなリストを返す方が効率的であることに注意してください。

cowboy_req:reply(
    200,
    #{<<"content-type">> => <<"text/html">>},
    [<<"<div style='color:#FF0'>">>, cowboy_req:host(Req), <<"</div>">>], 
    Req
)
于 2016-07-24T06:18:45.827 に答える