我有两片静态的
编译器显示我错误信息:
如何“强制”生命周期为静态? 编辑 我有一个长时间运行的进程。
在启动时,该进程会处理一些输入以计算结果(例如
我不想使用
我有没有机会这样做?
我有没有机会在不使用
u8
数组,我想实现一个函数将它们拼接在一起。类似下面这样的代码:fn concat_u8(first: &'static [u8], second: &'static [u8]) -> &'static [u8] {
&[&first[..], &second[..]].concat()
}
编译器显示我错误信息:
返回对当前函数拥有的数据的引用
。这是因为分配的内存将在函数结束时释放。如何“强制”生命周期为静态? 编辑 我有一个长时间运行的进程。
在启动时,该进程会处理一些输入以计算结果(例如
concat_u8
函数)。结果是u8
的片段,并将在处理过程中始终以只读方式使用。
concat_u8
函数无法在“内部启动事件”之后调用。我不想使用
Box
,因为动态分配意味着有点额外开销(也许无法测量?)并将结果存储为&[u8]
。我有没有机会这样做?
我有没有机会在不使用
unsafe
块的情况下这样做?
&[u8]
”。切片仅借用一些数据,它不能存储超过其原始长度的数据。这看起来越来越像一个XY问题。 - E net4