小编Ole*_*yba的帖子

是否有可能获得什么形式的联合类型的集合?

假设我有Union:

    SomeUnion = Union{Int, String}
Run Code Online (Sandbox Code Playgroud)

有没有一种方法来提取形成这种联合的类型集合?例如 ....

    union_types(SomeUnion) # => [Int, String]
Run Code Online (Sandbox Code Playgroud)

julia

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

消费盒子后谁负责释放内存

来自Rust文档.

into_raw函数使用一个框并返回原始指针.它不会破坏T或释放任何内存.

在这段代码中:

fn main() {
    let b = Box::new("hello".to_owned());
    let a: *mut String = Box::into_raw(b);
}
Run Code Online (Sandbox Code Playgroud)

我没有使用unsafe块,因此我们应该没有内存泄漏.因此,如果Box对象在消耗后没有责任释放内存,但是内存没有被释放并且可以进一步使用,并且原始指针不是由资源拥有的,谁将释放内存?

rust

2
推荐指数
2
解决办法
1135
查看次数

如何表达某些返回类型实现特征?

这是显示我的问题的抽象示例,从我尝试重构一些Rust代码并同时学习Rust中提取.

struct GenStruct<T> {
    field: T,
}

trait Marker {}
trait Return {}

impl Marker for i32 {}
impl Marker for u32 {}

// actually implement `Return` for GenStruct<M: Marker>,
// but compiler don't recognize that
impl Return for GenStruct<i32> {}
impl Return for GenStruct<u32> {}

struct Fake;

trait Trait<M: Marker> {
    type Ret: Return;
    fn meth(m: M) -> Self::Ret;
}

impl<M: Marker> Trait<M> for Fake {
    type Ret = GenStruct<M>;

    fn meth(m: M) -> GenStruct<M> {
        GenStruct { field: …
Run Code Online (Sandbox Code Playgroud)

generics traits rust

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

标签 统计

rust ×2

generics ×1

julia ×1

traits ×1