美文网首页
[erlang] 让你欲哭无泪的坑盘点

[erlang] 让你欲哭无泪的坑盘点

作者: 夏澪 | 来源:发表于2019-07-19 16:01 被阅读0次

前言

在使用erlang的过程中, 有些时候看语法就产生了想当然的想法, 然后处理全都出错, 一步步排查下来, 错误竟然是...

正文

  1. case 和 #{} 的坑
case #{<<"a">> => <<"apple">> of
   #{} -> true;  %% √
   _ -> false
end.

以常理度之, 上述代码返回应该是 false, 然而erlang会优先进行一次格式校验(似乎仅对Map格式生效), 当 case 的数据类型是 Map 的时候, 上述代码就会返回 true.

  1. cowboy 读取body
{ok, Body, _Req} = cowboy_req:read_body(Req),   %%正常body
{ok, Body, _Req} = cowboy_req:read_body(Req)    %% 空的

当read请求多次的时候, 从第二次开始, 读取的body就是的. 读取源码就会发现, Req本身是不包含 body 的, 但是包含一个 Pid, 读取的本质是向这个 Pid 发起读取 body 的请求, 听起来多次读取的结果应该是一样的, 但是cowboy实现的时候考虑的应该是另一种情况: 当请求体过长, 无法一次打印的情况下, 用流的方法进行传输, 传输一点, pid的缓存区删除一点, 这样可以避免重复发送. 当发送完成, 缓存区就没有数据了, 后续读取自然就只能读取到空了.

待续...

相关文章

  • [erlang] 让你欲哭无泪的坑盘点

    前言 在使用erlang的过程中, 有些时候看语法就产生了想当然的想法, 然后处理全都出错, 一步步排查下来, 错...

  • 好复杂的"简"书

    "一个简洁而优雅的环境让你专注于书写",一个坑爹而随机的"保存中..."让你欲哭无泪。 刚写完几百字,按几下删除,...

  • Erlang 入坑笔记 -- Erlang Process

    移步 https://ruby-china.org/topics/37504

  • RabbitMQ 的安装与卸载 以及各种踩坑

    RabbitMQ 的安装与卸载 以及各种踩坑 安装 -- windows RabbitMQ依赖于Erlang虚拟机...

  • 今曰复盘

    今天的行情总体偏弱,全天指数均在昨曰收盘点位下方反复振荡,让昨天追高的散户们欲哭无泪,进退两难。 看来,我们昨天逢...

  • RMQ的SSL配置最佳实践

    Erlang语言的安装 erlang是RabbitMQ的运行环境,为什么要强调安装erlang,如果你随便去下载e...

  • 我能行,有激情

    父母的话让我感动的欲哭无泪,芳芳加油,你可以的。

  • erlang中unicode编码的坑

    记得获取unicode 对应的二进制型这样写(这个貌似跟环境有关,使用前用characters_to_binary...

  • 陪孩子备战高考第一百三十九天

    期末成绩出来了……欲哭无泪!欲哭无泪!欲哭无泪!欲哭无泪!欲哭无泪!欲哭无泪!欲哭无泪!欲哭无泪!欲哭无泪!...

  • 5th Erlang模块2-编译执行

    如果你对Erlang模块的创建还有些许疑问,可以先看Erlang模块1进行解疑。我们来看一下Erlang代码的编译...

网友评论

      本文标题:[erlang] 让你欲哭无泪的坑盘点

      本文链接:https://www.haomeiwen.com/subject/uqlslctx.html