在 Elixir 交互式 shell 中检查 BitString 数据类型不显示信息

问题描述 投票:0回答:1

查询

i("my string")
返回BitString数据类型

h(BitString)
中运行
iex
命令会返回
Could not load module BitString, got: nofile

与在提示时返回模块信息的其他数据类型相比,此特定模块似乎不提供任何响应。如何在

BitString
中查看有关
iex
的信息?

改为查询

i('my string')
,但这是
List
数据类型。

h(List)
确实返回此模块类型的信息。

我对有关

BitString
数据类型

的信息感兴趣

...

module elixir elixir-iex
1个回答
0
投票

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语言中的类型不同,该类型要么由定义,然后由它定义根本没有定义模块,只有提供辅助函数来处理它的模块,或者是一个结构体,然后它在某个特定模块中定义。
© www.soinside.com 2019 - 2024. All rights reserved.