2011-12-05 9 views
2
(** adds an header option in the header option list*) 
let add_headers header key value = 
{ header with 
    headers = Http_headers.add key value header.headers } 

"ヘッダー付きヘッダー..."の理解方法私はそれが新しいヘッダーでheader.headersを "置き換える"と思います。 Howerver、渡されたヘッダーは不変でなければなりません。これを「どのように」理解するか?

よろしくお願いいたします。

+0

も参照してください。http://stackoverflow.com/questions/931496/x-with-value-in-ocaml – newacct

答えて

7

はい、渡されたheaderは不変です(または変更することができます)。この関数は実際に引数を変更しません。あなたが言うように、それはコピーのheadersフィールドが「置き換えられた」というコピーを返します。

+1

この例の「ヘッダー」を除くほとんどのフィールドはすべて「ヘッダー」戻り値たとえば、 'header'のフィールドの1つが配列の場合、その配列内の要素を変更すると、その配列フィールドを共有するすべての値に反映されます。 – hcarty

関連する問題