当前位置: 首页 > 知识库问答 >
问题:

一个trait中的静态函数可以调用同一trait中的另一个静态函数吗?

颜云瀚
2023-03-14

一个trait中的静态函数可以调用同一trait中的另一个静态函数吗?假设我有以下特点:

trait Test {
    fn prt() {
        println!("ok");
    }

    fn test() {
        Test::prt();
    }
}

那不行。代码不能在这里编译。

此外,没有类型让我使用完全限定的语法,如


共有1个答案

嵇俊德
2023-03-14

在trait定义中,您可以使用Self来引用实现trait的类型。对你来说,那看起来像:

trait Test {
    fn prt() {
        println!("ok");
    }

    fn test() {
        Self::prt();
    }
}

实际上没有像Test::Test这样的方法,因为它的主体总是由trait的实现定义的。碰巧的是,如果实现者不提供自己的主体,他们将默认获得该主体。

 类似资料:
  • 我不明白为什么下面的代码会打印两次。我以为应该是个人和学生。当通过“a”对象调用printPerson()内部的getInfo()时,为什么要调用Person类内部的一个,为什么不调用Student类中的一个?提前谢谢。

  • 我想为我的游戏创建一个简单的倒计时,当游戏开始时,我想每秒调用这个函数: 我试过这个: 但应用程序不幸停止,第二次调用run函数 3周前,我刚刚开始使用android开发和静态编程语言,到目前为止,我对它了解最多。 在Xcode中使用swift时,我使用了这一行,我认为类似的东西也适用于Kotlin

  • 我有一种叫做睡眠的特质: 我可以为每个结构提供不同的睡眠实现,但事实证明,大多数人的睡眠方式很少。你可以睡在床上: 如果你在露营,你可以睡在帐篷里: 有一些奇怪的情况。我有一个朋友可以靠墙睡觉,但大多数人,大多数时候,都会陷入一些简单的情况。 我们定义一些结构,让它们Hibernate: 呃-哦!编译错误: 这个编译器错误很奇怪,因为如果一个trait实现另一个trait时出现了问题,我希望在我这

  • 我创建了两个类:和。下面是进行计算的方法: 这里是一个调用并显示结果的函数,不幸的是,我无法根据这本书要求它运行的方式来运行它。 任何提示都会帮助我在我的再教育过程中。

  • 问题内容: 我可以在python3.2的全局范围内调用嵌套在另一个函数内的函数吗? 这是从外部func1()调用func2()的一种方法吗? 问题答案: 否,除非您返回该函数: 甚至

  • My while循环中断,因为“非静态方法HasPrecence(java.lang.String,java.lang.String)不能从静态上下文引用”