小编Bya*_*kun的帖子

如何拆分BitArray

我需要将BitArray(从std.bitmanip)分成两半.到目前为止,我已经发现切片没有实现,迭代它并且追加或分配产生超出范围的异常.我试图将它转换为其他类型(它适合long/ulong)但这似乎太麻烦了,当我尝试初始化新的BitArrays时它也会给我一个超出范围的异常,如下所示:

BitArray[] C, D;
long lg = toLong(bitArr);
C[0].init(cast(void[])((lg >> 28) & 0x0fff_ffff), 28);
Run Code Online (Sandbox Code Playgroud)

对我的问题有一个更简单的解决方案吗?如果没有,我做错了什么?

d bitarray

5
推荐指数
1
解决办法
1016
查看次数

使用什么样的Variadic功能?

我想编写一个可变参数函数,它应该有1个参数,它不是string类型的可选参数,第二个字符串是可选的.我已经阅读了关于可变函数的语言规范,但考虑到D的许多选项,我想知道哪个是我问题的合适解决方案.

另外我应该如何使用强制转换和指针来复制指向的字符串void* _argptr(字符串在D中不可变的事实让我困惑).

编辑:我想要的是:

string foo (string nonopt, ...) { /*code*/ }

//...
string a = "x@a.t", b = "a.t";
auto s = foo(a);
auto s2 = foo(a, b);
Run Code Online (Sandbox Code Playgroud)

d variadic-functions

1
推荐指数
1
解决办法
734
查看次数

标签 统计

d ×2

bitarray ×1

variadic-functions ×1