什么是无效[]?

时间:2014-12-09 18:24:39

标签: d

我在D文档和函数签名中的一些地方看到了void[]类型。这是什么意思?

我已经搜索了文档和Google中的数组部分,但没有找到任何结论。我发现所有数组都可以隐式转换为void[]类型。它只是一个无类型数组吗?

1 个答案:

答案 0 :(得分:12)

void[]只是一个数组。 in void[]是一个方便的签名,只是将字节写入文件或其他东西,因为它会接受任何类型的数组 - void意味着类型不重要且in意思是你没有意义修改或存储它,因此你也可以接受const或不可变数组。

要使用void[],您必须首先将其强制转换为其他内容,通常为ubyte[],因此元素具有允许您对其进行索引的具体大小。 void[].length是作为数组中的总字节数给出的,所以如果你只是将一个指针和数据长度传递给一个函数(比如操作系统级文件写,例如Linux' s {{1}传递write将获得写入的字节,而不关心它们代表什么。