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

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

回答

收藏

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

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

Tact 是 TON 区块链的一种新编程语言,注重效率和简便性。 它设计得易于学习和使用,并且非常适合智能合约。 它设计得易于学习和使用,并且非常适合智能合约。 Tact 是一种静态类型语言,具有简单的语法和强大的类型系统。
- g% Z1 v" K3 n0 F: d: ?4 ~! z
2 ?: J7 m" v7 p; |, ]🚀 我们开始吧!$ h3 w3 W/ w7 G/ r" ~8 e' s& k: e
% y* p* o* u( |/ [
确保已安装受支持的 Node.js 版本并可用+ H6 {- a1 f5 u6 Z3 j
要检查它,请运行 node --version —它应该会显示 22.0.0 或更高版本。" G3 y8 v6 @. ^- s2 b7 c2 @
1 }. w0 o) }. ^0 p  T, }8 r! c
运行以下命令
( j) ?" e3 B, t" e* x+ ^它将创建一个带有简单计数器合约的新项目:
. G( a, d- ]  v1 d, _7 \  P
2 n( K, u5 P- `# uyarn :
5 {4 ^" E1 {- z. i2 ]1 E" d- {" Q, s% L
  1. yarn create ton simple-counter --type tact-counter --contractName SimpleCounter
复制代码
npm :7 o* o7 V, ~- ^8 e: ^3 o6 E4 w3 E' g
  1. npm create ton@latest -- simple-counter --type tact-counter --contractName SimpleCounter
复制代码
pnpm :
; I' B( F1 H; W9 y1 n
  1. pnpm create ton@latest simple-counter --type tact-counter --contractName SimpleCounter
复制代码
bun :
* k' ?% U" [- u  O' a
  1. bun create ton@latest simple-counter --type tact-counter --contractName SimpleCounter
复制代码
  1. message Add {
    " X9 ]: j4 u/ w* {/ z, S2 x
  2.     queryId: Int as uint64;3 @0 w  f1 [' R* f/ f
  3.     amount: Int as uint32;
    & p: I- k0 B( i3 P5 [' K
  4. }
    ; u8 E! Z6 @8 I, H6 n9 V& O

  5. 6 U" }7 S" S5 E
  6. contract SimpleCounter {" ?: `$ X" x& K4 \, l, \! E
  7.     id: Int as uint32;( m3 M# x( |0 @: h5 I* `
  8.     counter: Int as uint32;
    # v  u! ]7 F! r+ W' ^
  9. 3 n' ~" o: u: d: U1 V4 O
  10.     init(id: Int) {5 e4 t; o- B- J5 H: r
  11.         self.id = id;
    5 j" j* \5 s8 K9 D8 K
  12.         self.counter = 0;  I0 h) E$ |% }
  13.     }
    " z- K  z% I9 z2 D! o. }

  14.   ]$ y' ]3 ^$ N/ t
  15.     // Empty receiver for the deployment
    1 |7 _' i) [1 F$ }& d; C4 @6 F
  16.     receive() {
    6 q8 L7 n# Y8 q3 b3 t0 x, t4 s
  17.         // Forward the remaining value in the2 e& A1 {8 j' w4 l* |/ a% W
  18.         // incoming message back to the sender
    4 U- f8 D( V' r9 W" s
  19.         cashback(sender());
    / {8 Q* e6 N# E4 J
  20.     }
    1 A- u+ k8 N. D+ B1 D' y& x

  21. & L& R$ M4 k6 s1 j$ @% @; H; k4 [- N
  22.     receive(msg: Add) {
    2 T  Q, U+ y  g$ y
  23.         self.counter += msg.amount;
    4 K# j1 ~2 Y) [. b' V, f

  24. + ^6 \; s$ m/ \( Q
  25.         // Forward the remaining value in the9 ?8 z& u2 r6 o1 {
  26.         // incoming message back to the sender
    , _8 K  a' l; A+ P) y* G$ L
  27.         cashback(sender());! F! i: m, z2 Z% f2 c0 i
  28.     }
    " |* w, _* E: q( B1 A  m

  29. 9 ?  Q- B! o7 F$ J/ x8 t( o
  30.     get fun counter(): Int {
    ! I. F6 E9 i6 D7 c0 Y6 r
  31.         return self.counter;! p% D. V. Z4 J% ^1 Q8 W) y
  32.     }
    : @1 P; M' K4 O3 h! W0 v

  33. 5 @' s% O5 {; |% n" k( Y
  34.     get fun id(): Int {6 |5 n! u0 s: ?8 G2 c) |' e. p
  35.         return self.id;. m+ {  `5 [" B6 t5 }+ I% Y$ K3 ?6 S6 Y
  36.     }6 V4 y% o7 V$ x6 w; D( I
  37. }
复制代码

% X" ^% {9 b* u) y  \, ^- q$ _& u+ H: \  u4 Y) N8 c+ A

0 U7 F+ n- S. y9 d" v+ y; x6 x; K) G- B: z
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则