gpt4 book ai didi

elixir - 在 Elixir Guard for String 中使用 is_bitstring 或 is_binary?

转载 作者:行者123 更新时间:2023-12-03 17:50:23 24 4
gpt4 key购买 nike

让我们来看看这个简单的函数:

  @spec laBionda(String.t()) :: String.t()
def laBionda(name \\ "you") when is_bitstring(name) do
"One for #{name}, one for me"
end

我只想为字符串输入定义函数。

我应该使用 is_bitstringis_binary在卫队?有什么区别吗?在这种情况下,两者似乎都很好。

最佳答案

您应该使用 is_binary/1 .

Elixir 中的字符串表示为二进制文件。 Elixir 二进制文件是字节序列,而位串是位序列。虽然所有二进制文件都是位串,但并非所有位串都是二进制文件。
is_bitstring/1可以退货true对于某些不能表示为二进制的位串,例如,单个位:

iex(1)> is_binary(<<1::1>>)
false
iex(2)> is_bitstring(<<1::1>>)
true

您只需要字符串。永远不需要非二进制的位串,因此更具体的 is_binary/1是更好的选择。

关于elixir - 在 Elixir Guard for String 中使用 is_bitstring 或 is_binary?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54161232/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com