lpi*_*pil 6 binary utf-8 elixir pattern-matching
我想有一个匹配任何单个UTF-8字符的函数子句.
我可以匹配这样的特定字符
def foo("a") do
"It's an a"
end
Run Code Online (Sandbox Code Playgroud)
但我无法确定是否可以对任何单个UTF8字符执行相同操作.
我目前的解决方案是将字符串拆分为字符列表并进行模式匹配,但我很好奇是否可以跳过该步骤.
你可以这样做:
def char?(<<c::utf8>>), do: true
def char?(_), do: false
Run Code Online (Sandbox Code Playgroud)
请注意,这仅匹配具有单个字符的二进制文件,以匹配字符串中的下一个字符,您可以这样做:
def char?(<<c::utf8, _rest::binary>>), do: true
Run Code Online (Sandbox Code Playgroud)