小编Thö*_*rni的帖子

如何从 on_message 事件中获取 Discord 上下文对象?

我目前正在开发一个机器人,实际上现在工作了一段时间,总是使用命令。命令的参数始终是上下文对象:

@client.command
async def test(context):
    message = context.message
Run Code Online (Sandbox Code Playgroud)

所以我围绕上下文对象构建了我的整个系统。现在我想使用 on_message 事件,但不是传递一个上下文对象,在这种情况下,Discord 传递一个消息对象:

@client.event
async def on_message(message):
    ...
Run Code Online (Sandbox Code Playgroud)

如何使用消息对象获取上下文对象?

python discord discord.py discord.py-rewrite

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

Rust 闭包真的不需要类型注释吗?

我目前正在阅读 Rust 书,刚刚进入主题closures。\n一个让我惊讶的细节是 Rust 书说:

\n
\n

闭包 don\xe2\x80\x99t 要求您注释参数的类型

\n
\n

我立即对此进行了测试,因为它看起来与 Rust 通常的工作方式确实违反直觉。因此,我准确地复制了他们使用的闭包,将其粘贴到我的代码中,然后......出现错误:

\n
fn some_closure() {\n    let expensive_closure = |num| {\n        println!("calculating slowly...");\n        thread::sleep(Duration::from_secs(2));\n        num\n    };\n}\n
Run Code Online (Sandbox Code Playgroud)\n
error[E0282]: type annotations needed\n  --> src/main.rs:14:30\n   |\n14 |     let expensive_closure = |num| {\n   |                              ^^^ consider giving this closure parameter a type\n\nerror: aborting due to previous error\n
Run Code Online (Sandbox Code Playgroud)\n

我确实知道该错误的含义,但我仍然对此感到困惑,因为不仅书籍,而且参考文献都指定不需要注释,但我却收到此错误。

\n

这只是最近的更改尚未记录,还是我误解了什么?

\n

closures rust

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