芭蕾舞演员从本地包装进口



>我有一个芭蕾舞演员项目结构如下

/  <- 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某个名称

由于"my.foo"和"my.bar"模块都来自同一个项目,因此在定义导入语句时不需要提供组织名称。

根据您的情况,如果您想使用"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(); 
}

有关打包的官方文档可以从此链接中找到。

简单来说[从Ballerina 0.982版本开始],您可以在my.foo软件包的任何.bal文件中导入 my.bar软件包,如下所示,

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());
}

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

import my.foo;

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

最新更新