当应用于编程概念时,“透明”和“不透明”意味着什么?

时间:2013-06-29 19:36:05

标签: language-agnostic terminology

导致我最困惑的两个编程术语是 透明 opaque 。它们相当常用,但我从未完全清楚它们的含义。

谷歌抛出大量使用“透明”一词的例子,例如:

以及'opaque'的一系列结果,主要与C概念有关:

虽然我也看过在与C无关的背景中使用的单词。

除了在“不透明指针”之类的特定复合词中使用它们之外,透明 opaque 这些词在编程领域有什么意义?他们甚至是彼此的对立面,比如他们隐喻所暗示的视觉概念,还是彼此无关?

1 个答案:

答案 0 :(得分:26)

在您提供的示例中,透明用于表示隐藏,就在幕后自动发生的事情(即没有代码的用户或程序必须互动)。

不透明也被用来表示隐藏,这可能是混淆的地方。术语 opaque type 有一个{{ 3}},它指的是已声明但尚未定义的类型。

在这两种情况下,我认为人们使用这些术语来表达缺乏可见性。在存在某些内容时会使用透明,但您无法看到它。 不透明用于存在某些内容的地方,但您无法在其中看到 来检查其内部工作情况。