ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

E3.IO.inspect万金油调试利器

2021-01-28 20:36:20  阅读:240  来源: 互联网

标签:iex inspect 万金油 打印 数据类型 ol IO


IO.inspect/2可以把调试信息直接打印到控制台上,简单易用,是不可或缺的调试好帮手。

基本使用

它可以打印任何的数据类型,并且可以定制protocol来打印自定义的数据。

E3_0

对比IO.puts,它能直接打印的数据类型就少得多了,比如:基本的数据类型,原子,字符串,IODataIO.puts返回值为ok

E3_2

所以IO.inspect调试时能随意打印任何数据结构是多么的棒!

使用Label选项

最棒的是此函数可以保持返回值就是输入,这可以在代码的任何地方加入它,且不影响原有代码逻辑。比如:

E3_3
  1. IO.inspect 可以加入label选项,他会直接把label对应内容打印在最前面。
  2. 使用String.split/3正则分割字符串。

使用Limit选项

限制打印的长度,允许输入0-N,或者:infinity

E3_5

Kernel.inspect/2

还有一个与IO.inspect非常相似的函数,它就是Kernel.inspect/2, 这个函数不会把数据打到控制台上,它只是把参数stringify化,比如:
E3_4

iex> inspect(:foo)
    ":foo"
iex> inspect([1, 2, 3, 4, 5], limit: 3)
    "[1, 2, 3, ...]"
iex> inspect([1, 2, 3], pretty: true, width: 0)
    "[1,\n 2,\n 3]"
iex> inspect("olá" <> <<0>>)
    "<<111, 108, 195, 161, 0>>"
iex> inspect("olá" <> <<0>>, binaries: :as_strings)
    "\"olá\\0\""
iex> inspect("olá", binaries: :as_binaries)
    "<<111, 108, 195, 161>>"
iex> inspect('bar')
    "'bar'"
iex> inspect([0 | 'bar'])
    "[0, 98, 97, 114]"
iex> inspect(100, base: :octal)
    "0o144"
iex> inspect(100, base: :hex)
    "0x64"

标签:iex,inspect,万金油,打印,数据类型,ol,IO
来源: https://www.cnblogs.com/zhongwencool/p/e3_io_inspect1.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有