(n << 1 & 255) + (n >> 7) # 8 位
(n << 1 & (2**m - 1)) + (n >> (m - 1)) # m 位
Date.parse(str)
是单纯的去尝试解析 str
符合某种日期的格式吧,比如"fc03bb56-6c12-48fb-b47e-4c266fe57c43"
中的 "03"
被当成了 3 号。其他的:
[1] pry(main)> Date.parse 'fc03bb56-6c12-48fb-b47e-4c266fe57c43'
=> Thu, 03 Jan 2019
[2] pry(main)> Date.parse 'fc05bb56-6c12-48fb-b47e-4c266fe57c43'
=> Sat, 05 Jan 2019
[3] pry(main)> Date.parse 'fc05baug-0000-48fb-b47e-4c266fe57c43'
=> Thu, 05 Aug 0000
[4] pry(main)> Date.parse 'fc05bsep-0000-48fb-b47e-4c266fe57c43'
=> Sun, 05 Sep 0000
那个视频太老了,Jose 本人现在也并不建议使用它,具体参见:https://elixirforum.com/t/meet-elixir-by-jose-valim-pluralsight/286/12 所以“最佳”的说法恐怕不太合适吧。