Hello, "/num" => GetNum, p if p.starts_with('/') => -6ren">
gpt4 book ai didi

使用rust E0061 : Some(A) is not the same as Some(match . .. =>A)

转载 作者:行者123 更新时间:2023-11-29 08:27:33 26 4
gpt4 key购买 nike

这段代码编译得很好:

Some(match head.path {
"/" => Hello,
"/num" => GetNum,
p if p.starts_with('/') => HelloName(p[1..].to_string()),
_ => PageNotFound
}, RecvMode::Buffered(1024), scope.now() + Duration::new(10, 0))

如果我把它改成

Some(Hello, RecvMode::Buffered(1024),
scope.now() + Duration::new(10, 0))

我明白了

error: this function takes 1 parameter but 3 parameters were supplied [E0061]

为什么?是否匹配构造与

相同的语义
x>0?A:B

?

函数返回值声明为

Option<(Self, RecvMode, Time).

我被要求提供 MCVE,但我还没有准备好,这就是为什么我会提供 link to sample ,我正在尝试更改。要构建它,请将以下依赖项添加到 cargo.ml:

rotor = "0.6.3" rotor-http = "0.7.0"

最佳答案

您问题中的代码无法编译。尽管您具有正确的元组构造语法,但在 GitHub 上的示例中。

因此对于问题中的第一个和第二个示例:在元组值周围添加括号以构造它:

Some((Hello, RecvMode::Buffered(1024),
scope.now() + Duration::new(10, 0)))

你想将一个元组传递给一个 Option-Enum,你必须首先构造元组。

关于使用rust E0061 : Some(A) is not the same as Some(match . .. =>A),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37961369/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com