小编APL*_*020的帖子

Rust - 调用内部值方法的枚举方法

我有一个如下的枚举:

enum Foo {
    A(X),
    B(Y),
    C(Z),
}
Run Code Online (Sandbox Code Playgroud)

其中 X、Y 和 Z 是实现该方法的结构体bar()

我希望能够barFoo枚举上定义一个方法,以便它调用其内部值的相应方法。现在我有这个:

impl Foo {
    pub fn bar() {
        match self {
            Foo::A(f) => { f.bar(); }
            Foo::B(f) => { f.bar(); }
            Foo::C(f) => { f.bar(); }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果可能的话,如何使用枚举做得更好?

enums rust

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

Clojure:在给定矩阵的情况下获取上三角矩阵的函数

我对 Clojure 很陌生,我试图从头开始实现(我不想使用任何模块)一个函数来从原始矩阵中获取某种三角矩阵,如下所示:

((1 2 3) (4 5 6) (7 8 9)) --> ((1 2 3) (5 6) (9))
Run Code Online (Sandbox Code Playgroud)

我可以使用递归来实现这一点,但如果可能的话,我也想在不使用递归的情况下实现这一点。任何想法将不胜感激。

我使用递归解决这个问题的方法是:

(defn get-sup-triang [m]
  (cond
    (empty? (rest (first m))) m
    true (cons (first m) (get-sup-triang (rest (map rest m))))))
Run Code Online (Sandbox Code Playgroud)

clojure

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

标签 统计

clojure ×1

enums ×1

rust ×1