查询
i("my string")
返回BitString数据类型
在
h(BitString)
中运行 iex
命令会返回 Could not load module BitString, got: nofile
。
与在提示时返回模块信息的其他数据类型相比,此特定模块似乎不提供任何响应。如何在
BitString
中查看有关 iex
的信息?
改为查询
i('my string')
,但这是 List
数据类型。
h(List)
确实返回此模块类型的信息。
我对有关
BitString
数据类型 的信息感兴趣
...
IEx.Helpers.i/1
打印将 IEx.Info.info/1
应用于该术语的结果。根据文档,
- “数据类型”:数据类型的名称。 通常定义数据类型的模块名称。
也就是说,
BitString
只是一个名字。如果您对用于处理该类型的模块感兴趣,您可以阅读最后打印的内容。i/1
并参阅参考模块:
iex|💧|1 ▸ i("f")
Term
"f"
Data type
BitString
Byte size
1
Description
This is a string: a UTF-8 encoded binary. It's printed surrounded by
"double quotes" because all UTF-8 encoded code points in it are printable.
Raw representation
<<102>>
Reference modules
String, :binary
Implemented protocols
Collectable, IEx.Info, Inspect, List.Chars, String.Chars
、
String
。
这种混乱很可能是由于没有显式映射:binary
→
type
这一事实引起的,因为elixir中的类型与OOP语言中的类型不同,该类型要么由erlang定义,然后由它定义根本没有定义模块,只有提供辅助函数来处理它的模块,或者是一个结构体,然后它在某个特定模块中定义。