【问题标题】:illegal bit size in pattern matching模式匹配中的非法位大小
【发布时间】:2015-06-11 23:08:42
【问题描述】:

我有字段,必须检查它是否有这样的视图 >

我做

try
    <<"{{", _/binary>> = FieldName
  catch
    _:_ ->
      throw(error)
  end,
  Size = byte_size(FieldName),
  try
    <<_:(Size-2)/binary, "}}">> = FieldName
  catch
    _:_ ->
      throw(error)
  end

匹配字段名尾部时得到“* 1: 非法位大小”

【问题讨论】:

    标签: erlang pattern-matching


    【解决方案1】:

    看起来不错 我找到了解决办法

    构造二进制时支持表达式 (Size-2)。这 肯定是模式匹配,所以如上所述:Size 必须是 常量表达式或变量。不是要评估的表达式 运行时。

    所有答案 http://erlang.org/pipermail/erlang-questions/2012-December/071145.html

    【讨论】:

      猜你喜欢
      • 2017-06-29
      • 2013-01-14
      • 1970-01-01
      • 1970-01-01
      • 2011-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多