Tolk 语言:概述
Tolk 是一种在TON中编写智能合约的新语言。可以将 Tolk 视为 "下一代 FunC"。 Tolk 编译器是 FunC 编译器的分叉,引入了类似于 TypeScript 的熟悉语法, ,但保留了所有底层优化。
import "storage.tolk"
fun loadData() {
ctxCounter = getContractData().beginParse().loadUint(32);
}
fun onInternalMessage(msgValue: int, msgFull: cell, msgBody: slice) {
var cs = msgFull.beginParse();
var flags = cs.loadMessageFlags();
if (isMessageBounced(flags)) {
return;
}
...
}
get currentCounter(): int {
loadData(); // fills global variables
return ctxCounter;
}
参见用 FunC 实现的相同逻辑
#include "storage.fc";
() load_data() impure {
slice cs = get_data().begin_parse();
ctx_counter = cs~load_uint(32);
}
() recv_internal(int msg_value, cell msg_full, slice msg_body) impure {
slice cs = msg_full.begin_parse();
int flags = cs.load_uint(4);
if (flags & 1) {
return ();
}
...
}
int currentCounter() method_id {
load_data(); ;; fills global variables
return ctx_counter;
}
尝试使用 FunC → Tolk 转换器
阅读 "Tolk vs FunC 的区别"