如何从 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.

制作不可变副本