【问题标题】:What is a language binding?什么是语言绑定?
【发布时间】:2010-09-06 18:05:19
【问题描述】:

我的好朋友,维基百科,didn't give me a very good response 这个问题。所以:

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

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

【问题讨论】:

    标签: language-agnostic glossary language-binding


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 所以“绑定”仅仅意味着它是一个“接口”。只是他们没有将其称为“界面”,因为它使用的是不同的语言。 “绑定”只是一个形容词,它表示一种语言的相同函数调用现在被另一种语言的函数调用支持。凉爽的!是否有任何网站解释了如何创建两种语言之间的桥梁的实现细节?
      • 我很抱歉恢复了这么老的答案,但我想知道使用语言绑定时是否有任何性能损失? (网上很多资料都找不到)
      【解决方案3】:

      好的,现在问题已经澄清,这并不重要,所以我将其移至a new question

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

      ...如果您对这种绑定感兴趣,请继续阅读...

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

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

      【讨论】:

        【解决方案4】:

        在 Flex (Actionscript 3) 中。 Source

        数据绑定将一个对象中的属性值复制到另一个对象中的属性。您可以绑定以下对象的属性: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 属性更改时,文本框都会更新,而无需您编写任何代码来监视该属性的更改。

        希望对您有所帮助。

        马特

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-03-03
          • 2011-04-21
          • 1970-01-01
          • 1970-01-01
          • 2014-06-30
          • 2011-09-03
          • 2011-04-30
          相关资源
          最近更新 更多