Function 结构拥有的函数的范围规则

Function 结构拥有的函数的范围规则,function,struct,scope,rust,Function,Struct,Scope,Rust,我试图了解impl块中定义的函数的确切范围,但这些函数不接受&self作为参数。例如,为什么下面的代码块不编译?我得到错误“在此范围内找不到函数生成结果” 这些函数称为关联函数。它们位于类型的命名空间中。它们必须像Type::function()那样被调用。在您的例子中,这就是Blob::generate_a_result()。但是,对于您自己的类型,有一个特殊的关键字Self。因此,最好的解决方案是: Self::generate_a_result() Self::generate_a_re

我试图了解
impl
块中定义的函数的确切范围,但这些函数不接受
&self
作为参数。例如,为什么下面的代码块不编译?我得到错误“在此范围内找不到函数
生成结果


这些函数称为关联函数。它们位于类型的命名空间中。它们必须像
Type::function()
那样被调用。在您的例子中,这就是Blob::generate_a_result()
。但是,对于您自己的类型,有一个特殊的关键字
Self
。因此,最好的解决方案是:

Self::generate_a_result()
Self::generate_a_result()