在 elixir 中, 可以使用模式匹配来精确地处理字符串.
1 byte(字节) = 8 bit(比特), 1 bit 在 elixir 中表现为 <<0~255>>.
长度可以被8整除的 bit 串, 即为 binary, 也就是 elixir 中的字符串.
例如, phoenix 项目中的这段代码:
defp drop_unique(info) do
prefix = byte_size(info) - 7
case info do
<<attr::size(prefix)-binary, ":unique">> -> attr
_ -> info
end
end
这里用 <<attr::size(prefix)-binary, ...>>
来进行模式匹配, 表示attr
将匹配到一个长度为prefix
的 binary.
也可以使用 unit(n)
来指定单位长度的比特数. 例如: <<a::size(3)-unit(4)>>
表示匹配长度为3, 单位长度为4bit的数据.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。