【问题标题】:Formatting Erlang terms without lists-to-strings translation在没有列表到字符串转换的情况下格式化 Erlang 术语
【发布时间】:2013-10-31 20:00:55
【问题描述】:

如何在不检测可打印字符代码列表的情况下格式化 Erlang 术语?例如。而不是

1> io:format("foo=~p~n", [[50]]). 
foo="2"

我想得到foo=[50]

【问题讨论】:

    标签: erlang


    【解决方案1】:

    As of R16B,您可以对~p 格式指令使用l(小写字母ell)修饰符来禁用字符串检测:

    1> io:format("~p~n", [[10]]).
    "\n"
    ok
    2> io:format("~lp~n", [[10]]).
    [10]
    ok
    

    这意味着您仍然可以获得~p 提供的换行符和深度限制,而不是~w

    【讨论】:

      【解决方案2】:

      如果你使用“~w”而不是“~p”,它应该给你一个列表而不把它变成一个字符串:

      io:format("foo=~w~n", [[50]]). 
      

      在此处查看相关文档:

      http://erldocs.com/R14B/stdlib/io.html?i=3&search=io:#format/1

      【讨论】:

        【解决方案3】:

        io:format 中使用标志~w

        1> io:format("foo=~w~n", [[50]]). 
        foo=[50]
        

        【讨论】:

          猜你喜欢
          • 2021-12-14
          • 2013-05-05
          • 1970-01-01
          • 2022-11-12
          • 2012-03-14
          • 2017-06-09
          • 1970-01-01
          • 1970-01-01
          • 2021-09-19
          相关资源
          最近更新 更多