小编MLm*_*aze的帖子

为什么clojure的地图与println一样?

您好我正在学习clojure,我想了解当我打字时发生了什么

(map println '(1 2 3 4))
Run Code Online (Sandbox Code Playgroud)

我期待类似的东西

1
2
3
4
Run Code Online (Sandbox Code Playgroud)

但我明白了

(1
2
nil 3
nil 4
nil nil)
Run Code Online (Sandbox Code Playgroud)

这只是我编写的一个例子.我只是想了解发生了什么.也许与懒惰有关?

clojure map println

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

Rust 中枚举的通配符和解构

是否可以对枚举的变体进行通配符,同时仍然计算其关联数据?

enum BAR {
    BAR1,
    BAR2,
}

enum BAZ {
    BAZ1,
    BAZ2,
    BAZ3,
}

enum FOO {
    FOO1(BAR, BAZ),
    FOO2(BAR, BAZ),
    FOO3(BAR, BAZ),
    //...
}

impl FOO {
    pub fn getBar(&self) -> &BAR {
        return match self {
            FOO::FOO1(bar, _) => bar,
            // _(bar, _) => bar,
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

枚举 FOO 有 50 多个变体。该产品线FOO::FOO1(bar, _) => bar,满足了我的需要,但列出所有 50 个变体会非常难看,因为所有手臂基本上看起来都一样。是否存在某种形式的_(bar, _) => bar,变体被通配符但相关数据仍然可检索的情况?

enums pattern-matching rust

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

标签 统计

clojure ×1

enums ×1

map ×1

pattern-matching ×1

println ×1

rust ×1