gpt4 book ai didi

rust - 如何更正 sdl2::render::Canvas 上的错误 "wrong number of type arguments: expected 1, found 0"

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

我正在 Rust 下测试 SDL2,我已经编写了一个应该加载图像的函数,我怎样才能加载我的图像而不出现以下错误“错误的类型参数数量:预期 1,找到 0"在我函数的第二个参数上?

 fn load_image(dtLoad: &str, canva: sdl2::render::Canvas) -> sdl2::render::Canvas {

let _img_load = {
let _x = match canva.texture_creator() {
Ok(_x) => _x,
Err(_) => panic!("Error create canva"),
};
let _load = match _x.load_texture(dtLoad) {
Ok(_load) => _load,
Err(_) => panic!("Error load texture\t:{}", dtLoad),
};
canva.copy(&_load, None, None);
};
return _img_load;
}

我希望该函数将带有 SDL Image 的图像加载到 SDL_Surface 中并将它们返回给调用者。除了我收到此错误消息:

error[E0107]: wrong number of type arguments: expected 1, found 0
--> src/main.rs:4:60
|
4 | fn load_image(dtLoad: &str, canva: sdl2::render::Canvas) -> sdl2::render::Canvas {
| ^^^^^^^^^^^^^^^^^^^^ expected 1 type argument

最佳答案

sdl2::render::Canvas 定义为(正如我链接的文档中所见):

struct Canvas<T: RenderTarget> { /* fields omitted */ }

这意味着它在 T 上是通用的.因此你不能使用 sdl2::render::Canvas就像那样,因为它还不是一个完整的类型。您必须提供一个通用参数,例如 sdl2::render::Canvas<WindowContext> .如果没有更多背景信息,我们无法为您提供更多帮助。


除此之外,一些一般提示:

  • 请使用标准的 Rust 格式,包括间距和换行符。您可以使用 rustfmt轻松格式化您的代码。至少,用 rustfmt 格式化你的代码在询问 StackOverflow 之前。您可以使用 the Playground使用 rustfmt 格式化您的代码.我编辑了你的问题来解决这个问题。
  • _ 开头所有变量名是一个非常糟糕的主意因为这会禁用未使用的变量警告。这些警告是有目的的。即使您不喜欢这些警告,也可以使用 #![allow(unused_variable)]而不是为每个变量名添加下划线。明确一点:我仍然不建议忽略这些警告!
  • return在 Rust 中应该尽可能省略。在你的情况下,这是最后一条语句,所以只写 img_load .
  • 请至少尝试通过格式化您的代码和错误消息来使您的 StackOverflow 问题可读。如果你不关心,你就不能指望别人关心。

关于rust - 如何更正 sdl2::render::Canvas 上的错误 "wrong number of type arguments: expected 1, found 0",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57787096/

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