芭蕾舞女演员从当地包裹进口

时间:2018-10-15 06:35:49

标签: ballerina

我的芭蕾舞女演员项目结构如下

/  <- project root
|
 - my.foo <- first package
      |
       - FooFunctions.bal <- Some .bal file
|
 - my.bar <- second package
      |
       - BarFunctions.bal <- Another .bal file

请注意如何使用包名称空间。他们中间有.。现在假设我遵循以下简单的 BarFunction.bal

public function someName() returns int {
  return 10;
}

我应该如何引用和使用 FooFunctions.bal 中的 someName

3 个答案:

答案 0 :(得分:2)

有关包装的官方文档可以在此link中找到。

简单地说(从Ballerina 0.982版开始),您可以将 my.bar 包导入 my.foo 包的任何.bal文件中,如下所示,

import ballerina/io;
import <org-name>/my.bar;

public function main(string... args) {
    io:println(bar:someName());
}

在项目的根级别 Ballerina.toml 文件的<org-name>值中替换org-name的位置。并注意如何使用bar来引用来自 my.bar 包的函数。芭蕾舞女演员文档中对此进行了突出显示,如下所示,

  

标识符是派生的或显式的。默认标识符是程序包名称,或者如果程序包名称包含点.,则在最后一个点之后的最后一个单词。

此外,您可以为导入的包选择一个标识符。例如,我可以使用以下语法将<org-name>/my.bar标识为barimport

import ballerina/io;
import <org-name>/my.bar as barimport;  # Now we refer import as barimport

public function main(string... args) {
    io:println(barimport:someName());
}

答案 1 :(得分:2)

我认为“ BarFunctions.bal”和“ BarFunction.bal”相同。如果是这样,您可以将“ my.foo”模块导入“ BarFunctions.bal” bal文件,如下所示:

import my.foo;

您不需要模块的组织名称,因为它们来自同一项目。

答案 2 :(得分:2)

由于'my.foo'和'my.bar'模块均来自同一项目,因此在定义import语句时无需提供组织名称。

根据您的情况,如果要使用“ my.foo”中“ my.bar”模块中的“ someName()”函数,只需在“ FooFunctions.bal”中执行以下操作:

import my.bar; 

public function main() {   
  // i will have the value returned from 'someName()' function
  int i = bar:someName(); 
}