59

我的好朋友,维基百科,对这个问题没有给我很好的回答。所以:

  • 什么是语言绑定?
  • 它们是如何工作的?

专门从用语言 Y 编写的库的语言 X 编写的代码访问函数。

4

4 回答 4

40

假设您创建了一个 C 库来将内容发布到 stackoverflow。现在您希望能够使用 Python 中的相同库。在这种情况下,您将为您的库编写 Python 绑定。

另见 SWIG:http ://www.swig.org

于 2008-08-25T11:33:02.677 回答
23

在代码库的上下文中,绑定是在两种编程语言之间架起桥梁的包装库,因此为一种语言编写的库也可以隐式地用于另一种语言。

例如,libsvn 是 Subversion 的 API,是用 C 编写的。如果你想从 Java 代码中访问 Subversion,你可以使用 libsvn-java。libsvn-java 依赖于安装的 libsvn,因为 libsvn-java 只是 Java 编程语言和 libsvn 之间的桥梁,提供了一个 API,只调用 libsvn 的函数来完成实际工作。

于 2008-08-25T11:26:10.070 回答
5

好的,现在问题已得到澄清,这并不相关,所以我将其移至一个新问题

绑定通常是指一个事物到另一个事物的映射——即一个数据源到一个表示对象。它通常可以指将来自数据库或类似源(XML 文件、Web 服务等)的数据绑定到表示控件或元素 - 想想 HTML 中的列表或表格、组合框或桌面软件中的数据网格。

...如果这是您感兴趣的绑定类型,请继续阅读...

您通常必须将表示元素绑定到数据源,而不是相反。这将涉及某种映射 - 即您希望数据源中的哪些字段出现在输出中。

有关几个环境中的更多信息,请参阅:

于 2008-08-25T11:24:41.633 回答
0

在 Flex (Actionscript 3) 中。来源

数据绑定将一个对象中的属性值复制到另一个对象中的属性。您可以绑定以下对象的属性:Flex 组件、Flex 数据模型和 Flex 数据服务。

提供数据的对象属性称为源属性。接收数据的对象属性称为目标属性。

以下示例将 TextInput 组件的 text 属性(源属性)绑定到 Label 组件的 text 属性(目标属性),以便在 TextInput 组件中输入的文本由 Label 组件显示:

<mx:TextInput id="LNameInput"></mx:TextInput>
...
<mx:Label text="{LNameInput.text}"></mx:Label>

数据绑定通常是将模型绑定到用户界面组件的简单方法。例如,您有一个具有 FirstName 属性的类。在 flex 中,您可以通过将文本框的值设置为 {Object.FirstName} 轻松将该属性绑定到文本框。然后,每次 FirstName 属性更改时,文本框都会更新,而无需您编写任何代码来监视该属性的更改。

希望有帮助。

马特

于 2008-08-25T11:21:56.900 回答