English 简体中文 繁體中文 한국 사람 日本語 Deutsch русский بالعربية TÜRKÇE português คนไทย french

简体中文 繁體中文 English 日本語 Deutsch 한국 사람 بالعربية TÜRKÇE คนไทย Français русский

回答

收藏

学习⚡ Tact 中的所有编程知识

开源社区 开源社区 5929 人阅读 | 0 人回复 | 2025-03-23

Tact 是 TON 区块链的一种新编程语言,注重效率和简便性。 它设计得易于学习和使用,并且非常适合智能合约。 它设计得易于学习和使用,并且非常适合智能合约。 Tact 是一种静态类型语言,具有简单的语法和强大的类型系统。
3 W) U' y0 q3 X1 }! d" `% @  J6 G8 [& y* v% b$ A
🚀 我们开始吧!
; _$ V. W2 H- `: y6 j6 x. }! C, v, q  O. D6 d
确保已安装受支持的 Node.js 版本并可用- d6 c  k( d* v/ n4 U
要检查它,请运行 node --version —它应该会显示 22.0.0 或更高版本。6 _' {. ~2 x$ h5 k6 e1 x4 x$ F0 x/ k

+ M. m, {& n4 X8 A运行以下命令
% y4 A( d; e$ d+ ?( y4 p) p! ~1 W它将创建一个带有简单计数器合约的新项目:8 R; N9 q$ F+ X# A; d% w$ E$ w

% K% \+ H- s. Q( ]) r4 {2 vyarn :/ J1 k9 K  F4 K( g: }# a2 d
  1. yarn create ton simple-counter --type tact-counter --contractName SimpleCounter
复制代码
npm :9 q2 s. m& H: R0 \
  1. npm create ton@latest -- simple-counter --type tact-counter --contractName SimpleCounter
复制代码
pnpm :
! @* c! V0 }, o+ ?" J" H
  1. pnpm create ton@latest simple-counter --type tact-counter --contractName SimpleCounter
复制代码
bun :
7 {* _  Y0 g7 B9 f4 x) a. K' ~
  1. bun create ton@latest simple-counter --type tact-counter --contractName SimpleCounter
复制代码
  1. message Add {0 B) v% A" Q5 v
  2.     queryId: Int as uint64;
    % ~2 h5 \2 h- g
  3.     amount: Int as uint32;& B, r+ ^/ ?" y! Y: \! e
  4. }! G$ o+ v  q& w# g4 R

  5. 6 ^4 ^0 M9 A0 ^$ t: e! I
  6. contract SimpleCounter {( ~7 X# O, f5 @5 q) X) J: t
  7.     id: Int as uint32;
    ! n  E0 s1 b8 K+ |. i1 f
  8.     counter: Int as uint32;6 N# S! ~/ H8 a3 r6 J: W
  9. 8 l9 m- M& W& P3 V& }' P
  10.     init(id: Int) {8 a% ]2 o$ c, E8 q1 f; A' F
  11.         self.id = id;& u9 j) k5 {$ g& a3 J: F6 n5 t
  12.         self.counter = 0;
    2 X7 k7 W7 [% Q  l# ?
  13.     }" y$ _0 \2 \) k7 ?- i8 h- j5 n

  14. 5 [7 L: k: Q4 ?/ u
  15.     // Empty receiver for the deployment
    - e/ c2 m2 E% U9 J
  16.     receive() {
    # s4 d- y# m% U9 s
  17.         // Forward the remaining value in the$ q5 z. }+ H) d0 ^4 e, v* D
  18.         // incoming message back to the sender7 \0 H1 e8 q7 j
  19.         cashback(sender());
    9 B# D9 p/ Q6 O" M: g5 h" O
  20.     }* u4 _  F  @/ m" Z. u' L( B! ^7 i
  21. : n1 x: A+ M" H7 U: q" V
  22.     receive(msg: Add) {& O! f$ w2 L7 O; m' n
  23.         self.counter += msg.amount;
    - Z- c3 D, M, c$ F

  24. 2 C% G6 [/ J: r: M1 I
  25.         // Forward the remaining value in the
    * n/ Q' ~* _. d, i* ?  m# W6 E& \
  26.         // incoming message back to the sender6 |) J* x7 |, S9 l
  27.         cashback(sender());
    7 P+ F8 n2 m( A, \0 L' {9 \& ]- Y
  28.     }
    - ^4 B& o9 p* a+ r: K4 ]. F
  29. . f! Y  i8 R& ?% T! Q
  30.     get fun counter(): Int {! Z$ r1 I5 O( J$ B& I  x
  31.         return self.counter;
    2 G( w& u; k1 F' p: r
  32.     }- z! O( l2 A+ y# m7 H

  33. / O( a# J2 R1 T
  34.     get fun id(): Int {
    % t: Y7 R" K* w) o& a5 W
  35.         return self.id;% X5 e+ [5 \" e9 p
  36.     }
    6 Q" Z7 ~+ A* [0 M% e0 i
  37. }
复制代码

; L2 I8 D) I4 t' f$ M% s
0 e( c- r0 l: [
' T* N& A. {4 W
9 W& `1 Y0 Z3 E, H
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则