Skip to content

导入代码

Tact 允许您导入 Tact 和 FunC 代码 —— 任何 .tact 或 .fc/.func 文件都可以使用 import 关键字导入到您的项目中。

此外,Tact 编译器有一套多功能的标准库,这些库已经打包在一起,但不会立即包含,详见“语言→库→概览”。

注意:所有导入的代码都会与您的代码合并,因此避免名称冲突并始终仔细检查源代码非常重要!

导入 Tact 代码

可以使用 import 语句并提供目标 .tact 文件的相对路径来导入任何 Tact 代码,如下所示:

solidity
import "./relative/path/to/the/target/tact/file.tact";

指定父目录(../)也是可能的:

solidity
import "../subfolder/imported/file.tact";

导入 FunC 代码

可以直接导入用 FunC 代码编写的代码,就像导入 Tact 代码一样:

solidity
// 相对导入
import "./relative/path/to/the/target/func/file.fc";
 
// 指定父目录
import "../subfolder/imported/func/file.fc";

但是,要使用此类文件中的函数,首先必须将它们声明为原生函数。例如,当标准库 @stdlib/dns 使用 dns.fc FunC 文件时,它会将 FunC 函数映射到 Tact 函数,如下所示:

solidity
// FunC 代码位于当前 Tact 文件旁边的文件中:
import "./dns.fc";
 
// 从 FunC 到 Tact 的映射函数签名:
@name(dns_string_to_internal)
native dnsStringToInternal(str: String): Slice?;

标准库

详见“语言→库→概览”。