2016-07-24 9 views
1

を連結する私は、ビット列アーラン - どのようにビット列

cowboy_req:reply(

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

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

       Req 
    ) 

を連結しようとしているが、それは理由++オペレータのランタイムエラーが発生します。 2つのビット列をどのように連結できますか?

+1

次のスレッドを見てみてください:http://stackoverflow.com/questions/10963359/concatenating-bitstrings-not-binaries-in-erlang – Yaron

+0

を、私はその質問を見たがunderstことができませんでしたそして。この「<<1,2>」のような数字がいくつかありますが、文字列は '<< >>' – Paramore

+0

の間にあります。これはどうですか? http://stackoverflow.com/a/601482/1835621 – Yaron

答えて

4

通常のバイナリですが、特にビットストリングはありません。その後、

あなたが実際にそれらを連結したい場合は、変数に格納cowboy_req:host(Req)と3つのバイナリ連結:cowboy_req:replyiodata()を受け付けているので、それはこのようなリストを返すために、通常より効率的だと

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

注:

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

ありがとうございます。それは私の問題を解決しました – Paramore