【问题标题】:What does external mean in Dart?Dart 中的外部是什么意思?
【发布时间】:2014-09-15 18:27:49
【问题描述】:

external 在 Dart 中是什么意思?例如:external DateTime._now();

我是 Dart 新手,找不到external 的文档,你能举个例子帮助解释一下吗?

【问题讨论】:

标签: dart


【解决方案1】:

9.4 外部函数
外部函数是一个函数,其主体与它的主体分开提供
宣言。一个外部函数可能是一个顶级函数(17),一个方法

函数的主体在其他地方定义。
据我所知,这用于修复浏览器中的 Dart VM 和服务器上的 Dart VM 的不同实现。

【讨论】:

  • 主要用于抽象 Dart VM 和 dart2js 之间的实现细节。
  • 如何定位外部方法的实现?
  • 我可以通过在源代码中搜索相关关键字找到实现外部功能的文件。但是,如果我可以从编辑器中访问实现会更方便。
【解决方案2】:

当我们在 toString() 这样的类中创建一个外部函数时

external String toString();

表示这个方法是抽象的,父类的子类会添加函数体,这是因为在Dart中我们只能做一个抽象类。

总结:

外部函数 = 非抽象类中的抽象函数

【讨论】:

    【解决方案3】:

    我不认为external 关键字是用来将方法标记为抽象的,即使这是可能的

    在抽象类中将没有实现的方法设置为抽象就足够了

    它相当于 TypeScript 中的 declare 和 C# 中的 extern,它们用于与其他运行时的互操作性,这意味着你告诉编译器“不要担心这个方法的实现,我保证将在运行时存在”,运行时可能是 C 或 Javascript 或其他任何语言

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-05
      • 1970-01-01
      • 1970-01-01
      • 2019-06-22
      • 2021-03-28
      • 2013-07-21
      • 2010-12-27
      • 2012-01-09
      相关资源
      最近更新 更多