我见过这种类型 void[]
在D文档和函数签名中的一些地方使用。这是什么意思?
我搜索了文档和Google中的数组部分,但没有找到任何结论。我发现所有数组都可以隐式转换为 void[]
类型。它只是一个无类型的数组吗?
我见过这种类型 void[]
在D文档和函数签名中的一些地方使用。这是什么意思?
我搜索了文档和Google中的数组部分,但没有找到任何结论。我发现所有数组都可以隐式转换为 void[]
类型。它只是一个无类型的数组吗?
void[]
只是一系列的东西。 in void[]
是一个方便的签名,只是将字节写入文件或其他东西,因为它将接受任何类型的数组 - void
意思是这种类型并不重要 in
意思是你没有意义修改或存储它,因此你也可以接受const或不可变数组。
使用一个 void[]
,你必须首先把它投射到别的东西,通常, ubyte[]
,因此元素具有允许您索引它的具体大小。 void[].length
作为数组中的总字节数给出,所以如果你只是将一个指针和数据长度传递给一个函数(比如操作系统级文件写入,例如Linux的 write
系统调用),传递 arr.ptr, arr.length
将得到这些字节,而不关心它们代表什么。
void[]
只是一系列的东西。 in void[]
是一个方便的签名,只是将字节写入文件或其他东西,因为它将接受任何类型的数组 - void
意思是这种类型并不重要 in
意思是你没有意义修改或存储它,因此你也可以接受const或不可变数组。
使用一个 void[]
,你必须首先把它投射到别的东西,通常, ubyte[]
,因此元素具有允许您索引它的具体大小。 void[].length
作为数组中的总字节数给出,所以如果你只是将一个指针和数据长度传递给一个函数(比如操作系统级文件写入,例如Linux的 write
系统调用),传递 arr.ptr, arr.length
将得到这些字节,而不关心它们代表什么。