gpt4 book ai didi

visibility - Kotlin 中的包保护替代方案

转载 作者:IT老高 更新时间:2023-10-28 13:26:40 27 4
gpt4 key购买 nike

在 Java 中,我们为类提供了 package protected(默认)修饰符,它允许我们在一个包中拥有许多类,但只公开少数几个类并保持逻辑封装。

对于 Kotlin,情况似乎并非如此。如果我想让一些类彼此可见但不再可见,我必须使用私有(private)修饰符来限制对单个文件的可见性。

因此,如果您想在一个包中包含 10 个类,但只有其中一个是公开的,那么您必须拥有一个包含所有类的大文件(并且到处都是 private )。

这是正常的做法还是有办法在 Kotlin 中实现一些类似的模块化?

我不明白:如果他们有包的概念,为什么他们要摆脱包保护访问?

更新:毕竟我们可能拥有包保护的可见性
see the discussion here

更新:如果您阅读讨论后仍然认为这是该语言的必备功能,请投票 here

最佳答案

与 Java 相比,Kotlin 似乎在较小程度上依赖包模型(例如,目录结构不绑定(bind)到包)。相反,Kotlin 提供 internal visibility ,专为模块化项目架构而设计。使用它,您可以将部分代码封装在单独的 module 中。 .

因此,您可以在顶级声明中使用

  • private 限制对文件的可见性
  • internal 限制模块的可见性

此时,没有其他可见性限制选项。

关于visibility - Kotlin 中的包保护替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35914095/

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