Skip to content

编译时函数

以下列出了所有的内置 全局静态函数,这些函数在构建 Tact 项目时进行评估,不能处理非常量的运行时数据。这些函数通常被称为“编译时函数”。

address

solidity
fun address(s: String): Address;

一个编译时函数,将 String 类型的地址转换为 Address 类型。

使用示例:

solidity
contract Example {
    // 持久化状态变量
    addr: Address =
        address("EQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqB2N"); // 在编译时工作!
}

cell

solidity
fun cell(bocBase64: String): Cell;

一个编译时函数,将 base64 编码的 BoC bocBase64 作为 Cell 嵌入到合约中。

使用示例:

solidity
contract Example {
    // 持久化状态变量
    storedCell: Cell =
        // Wallet V3R1 的初始化包作为 base64 编码的 BoC
        cell("te6cckEBAQEAYgAAwP8AIN0gggFMl7qXMO1E0NcLH+Ck8mCDCNcYINMf0x/TH/gjE7vyY+1E0NMf0x/T/9FRMrryoVFEuvKiBPkBVBBV+RDyo/gAkyDXSpbTB9QC+wDo0QGkyMsfyx/L/8ntVD++buA="); // 在编译时工作!
}

有用链接:
TON 文档中的 Bag of Cells

ton

solidity
fun ton(value: String): Int;

一个编译时函数,将给定的 Toncoins value 从人类可读的 String 格式转换为 nanoToncoin Int 格式。

使用示例:

solidity
contract Example {
    // 持久化状态变量
    one: Int = ton("1");            // 10^9 nanoToncoins,等于一个 Toncoin
    pointOne: Int = ton("0.1");     // 10^8 nanoToncoins,等于 0.1 Toncoin
    nano: Int = ton("0.000000001"); // 1 nanoToncoin,等于 10^-9 Toncoins
                                    // 在编译时工作!
}