小编Mar*_*cht的帖子

Kotlin内部可见性修改器的范围

我在理解内部访问修饰符时遇到问题.在我的例子中,我不能产生任何与公共行为不同的情况.即使我创建了一个jar,我也可以从jar外部访问jar中的内部函数(来自与jar中使用的包不相关的其他包).在文档中使用了术语模块,但我无法找到模块的确切内容.

我的问题是:

  1. 什么是kotlin的模块?

  2. 访问修饰符内部与公共modiefier有何不同?

visibility kotlin

13
推荐指数
1
解决办法
1580
查看次数

如何在实现特征时避免函数名称冲突?

我有一个带有实现的结构,该实现具有访问结构的私有状态的函数.

struct Example {...}

impl Example {
    fn test(&self) -> .. {...}
}
Run Code Online (Sandbox Code Playgroud)

在另一个模块中的其他地方存在另一个特征:

trait ExampleTrait {
    fn test(&self) -> .. {...}
}
Run Code Online (Sandbox Code Playgroud)

现在我想实现ExampleTraitExample结构和测试方法转发到测试impl的结构.

以下代码:

impl ExampleTrait for Example {
    fn test(&self) -> .. {
        self.test()
    }
}
Run Code Online (Sandbox Code Playgroud)

显然是一个无限的递归调用.我不能只重复原始测试的主体,因为我无法访问Example此处的私有状态.

有没有其他方法可以做到这一点,除了重命名一个功能或在Example公共场所制作字段?

private traits rust

4
推荐指数
1
解决办法
288
查看次数

标签 统计

kotlin ×1

private ×1

rust ×1

traits ×1

visibility ×1