如何从 D 中的字节数组构造字符串
How do I construct string from byte array in D
我有一个字节数组,它被定义为指针 + 大小:
size_t size; // size in bytes
void *data; // NOT zero-terminated string
如何从中构造 'string',最好是零拷贝?
这里假定 data
指向不可变内存:
string s = (cast(immutable(char)*)data)[0..size];
如果没有,char[]
比字符串更合适,或者您可以使用 .idup
.
制作不可变副本
我有一个字节数组,它被定义为指针 + 大小:
size_t size; // size in bytes
void *data; // NOT zero-terminated string
如何从中构造 'string',最好是零拷贝?
这里假定 data
指向不可变内存:
string s = (cast(immutable(char)*)data)[0..size];
如果没有,char[]
比字符串更合适,或者您可以使用 .idup
.