我在D文档和函数签名中的一些地方看到了void[]
类型。这是什么意思?
我已经搜索了文档和Google中的数组部分,但没有找到任何结论。我发现所有数组都可以隐式转换为void[]
类型。它只是一个无类型数组吗?
答案 0 :(得分:12)
void[]
只是一个数组。 in void[]
是一个方便的签名,只是将字节写入文件或其他东西,因为它会接受任何类型的数组 - void
意味着类型不重要且in
意思是你没有意义修改或存储它,因此你也可以接受const或不可变数组。
要使用void[]
,您必须首先将其强制转换为其他内容,通常为ubyte[]
,因此元素具有允许您对其进行索引的具体大小。 void[].length
是作为数组中的总字节数给出的,所以如果你只是将一个指针和数据长度传递给一个函数(比如操作系统级文件写,例如Linux' s {{1}传递write
将获得写入的字节,而不关心它们代表什么。