【问题标题】:How to understand this "with"?如何理解这个“与”?
【发布时间】:2011-12-05 01:41:12
【问题描述】:
 (** 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。但是,传递的标头应该是不可变的,不是吗?

真诚的!

【问题讨论】:

标签: ocaml


【解决方案1】:

是的,传递的header 是(或可以是)不可变的。这个函数实际上并没有修改它的参数;它只是返回它的副本,正如您所说,副本的 headers 字段“已替换”。

【讨论】:

  • 我认为这个例子中除了'headers'之外的所有大部分字段都将在'header'和返回值之间共享。例如,如果 'header' 中的字段之一是数组,则修改该数组中的元素将反映在共享该数组字段的所有值中。
猜你喜欢
  • 2015-09-20
  • 2011-05-06
  • 2018-03-28
  • 1970-01-01
  • 2019-10-05
  • 2022-06-16
  • 2021-08-13
  • 2013-08-22
  • 2016-04-12
相关资源
最近更新 更多