HTTP :: Server :: Response#headers的`[] =`和`add`有什么区别?

时间:2018-06-09 19:22:36

标签: http-headers crystal-lang

adding/manipulating headers时,我查看了[]=.add的源代码。我仍然对两种添加/设置标题的方法感到困惑。这两种方法有什么区别?

1 个答案:

答案 0 :(得分:6)

[]=将所有标题键内容替换为新的值数组

puts response.headers["Accept-Language"] # => ["de"]
response.headers["Accept-Language"] = "de-CH" # or ["de-CH"]
puts response.headers["Accept-Language"] # => ["de-CH"]

.add检查标头密钥是否存在并附加值:

puts response.headers["Accept-Language"] # => ["de"]
response.headers.add "Accept-Language", "de-CH"
puts response.headers["Accept-Language"] # => ["de", "de-CH"]