获得前n个字节的更好方法,以及String的其余部分?目前使用binary_part和String.trim_leading

Pet*_*r R 3 elixir

给定一个字符串str = "üabc123",和size = 5.我想得到前5个字节("üabc"),以及字符串("123")的其余部分.

目前我在做:

str = "üabc123"
size = 5
a = binary_part(str, 0, size)      # "üabc"
b = String.trim_leading(str, a)    # "123"
Run Code Online (Sandbox Code Playgroud)

似乎会有更清洁的方法来做到这一点.还有另外一种方法吗?

Jus*_*ood 7

您可以使用二进制模式匹配

<< a::binary-size(5), b::binary >> = "üabc123"
a == "üabc"
b == "123"
Run Code Online (Sandbox Code Playgroud)