使用 Some 作为函数的语法是什么?


self.0.iter().map(Some)

https://github.com/zcash/halo2/blob/main/halo2_proofs/src/circuit/floor_planner/v1/strategy.rs L71

我试着用谷歌搜索一些关键词,但没有找到任何结果。

有一些混淆,所以让我们澄清一些事情。Some不是enum(正如您在评论中所说),它是enum的部分,也就是说,Option<T>类型被定义为

enum Option<T> {
Some(T),
None,
}

在这里,Some(T)被称为该枚举的一个变体。但是,为了方便起见,编译器将生成一个具有相同名称和相同签名的函数,该函数只生成该变体。即Some: fn(T) -> Option<T>。类似地,None变体产生一个同名的常量。

最新更新