我有一个字节数组,它由指针和大小定义: size_t size; // size in bytes void *data; // NOT zero-terminated string 我该如何构建一个字符串,最好是零拷贝的方式?
这里假设data指向不可修改的内存:string s = (cast(immutable(char)*)data)[0..size]; 如果不行,使用char[]比使用字符串更合适,或者你可以使用.idup创建一个不可变的副本。
const(void)*
(正如应该的那样,因为字符串内容是不可变的),那么强制转换将是不必要的。 - Vladimir Panteleev