小编jos*_*nda的帖子

特质贬低

如何将特征向下转换为结构,就像这个 C# 示例中那样?

我有一个基本特征和几个派生结构,必须将它们推入单个基本特征向量中。

我必须检查向量的每个项目是否可转换为特定的派生结构,如果是,则将其用作该类型的结构。

这是我的 Rust 代码,我不知道如何实现注释部分。

trait Base {
    fn base_method(&self);
}

struct Derived1;
impl Derived1 {
    pub fn derived1_method(&self) {
        println!("Derived1");
    }
}
impl Base for Derived1 {
    fn base_method(&self) {
        println!("Base Derived1");
    }
}

struct Derived2;
impl Derived2 {
    pub fn derived2_method(&self) {
        println!("Derived2");
    }
}
impl Base for Derived2 {
    fn base_method(&self) {
        println!("Base Derived2");
    }
}

fn main() {
    let mut bases = Vec::<Box<dyn Base>>::new();
    let der1 = Derived1{};
    let der2 …
Run Code Online (Sandbox Code Playgroud)

traits downcast rust

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

删除功能如何工作?

我的代码在那里不起作用!我读了一本 Rust 书。我读到如果你想删除一个值,你可以写 drop(name);

fn main() {
    let n = 1;
    std::mem::drop(n);
    println!("{}", n);
}
Run Code Online (Sandbox Code Playgroud)

它在我的终端上运行,但为什么不n掉线?

rust

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

有没有办法以更有吸引力的列表理解格式重写它?

我这里的内容很难阅读,我想知道如何用更少的代码行来编写它。

lst = [-3,10.5,100]

def add_index(nums):
    lst2=[]
    add = 0
    for i in nums:
        add += 1
        lst2.append(i+add)
    return lst2
    
add_index(lst)
Run Code Online (Sandbox Code Playgroud)

python

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

标签 统计

rust ×2

downcast ×1

python ×1

traits ×1