我正在努力解决如何从外部箱子导入宏的问题.在我的主要人员中,我正在进口Glium箱子:
#![macro_use]
extern crate glium;
pub use glium::*;
// where my actual main function will be done from
mod part01drawtriangle;
fn main() {
part01drawtriangle::main();
}
Run Code Online (Sandbox Code Playgroud)
在我的主要功能来自我的另一个文件中,我从该包中调用了一个宏:
pub fn main() {
implement_vertex!(Vertex, position);
}
Run Code Online (Sandbox Code Playgroud)
构建时,我收到错误消息:
error: macro undefined: 'implement_vertex!'
Run Code Online (Sandbox Code Playgroud) 制作这样的函数有什么区别:
fn add(_: i32) -> i32 {
10 + 25
}
Run Code Online (Sandbox Code Playgroud)
还有这个:
fn add() -> i32 {
10 + 25
}
Run Code Online (Sandbox Code Playgroud)
我意识到第一个函数在被调用时需要一个参数,即使它没有被使用,所以我认为在这种情况下第二个版本应该没问题.
我有什么理由可以使用第一个版本吗?我在Iron的例子中看到了这一点,当时为某条路线实现了一个处理程序.我很困惑为什么在提供空参数应该有效时必须这样做.