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

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

回答

收藏

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

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

Tact 是 TON 区块链的一种新编程语言,注重效率和简便性。 它设计得易于学习和使用,并且非常适合智能合约。 它设计得易于学习和使用,并且非常适合智能合约。 Tact 是一种静态类型语言,具有简单的语法和强大的类型系统。/ W" V0 ~8 S" `- Q- u

6 o) o) {7 \7 U! s& U🚀 我们开始吧!
2 y0 c4 [+ w9 Y8 M5 |$ s* J* S' `& h
确保已安装受支持的 Node.js 版本并可用' J+ I% G6 F3 W1 B
要检查它,请运行 node --version —它应该会显示 22.0.0 或更高版本。
" @( z1 M, m; `: u
( V" A( I7 g# A% l$ ?" f, _! n8 t运行以下命令
8 u0 X, Z) j# U3 _它将创建一个带有简单计数器合约的新项目:
4 t2 u+ n! c/ @1 W, L0 J0 P7 o7 l" ]; Y4 h( R! K2 a
yarn :. N9 t; t, W$ W8 f6 v$ |+ R' I# f0 {
  1. yarn create ton simple-counter --type tact-counter --contractName SimpleCounter
复制代码
npm :
& j. r! u" r( q
  1. npm create ton@latest -- simple-counter --type tact-counter --contractName SimpleCounter
复制代码
pnpm :1 |: z4 p7 D2 Z7 W( }$ s2 d
  1. pnpm create ton@latest simple-counter --type tact-counter --contractName SimpleCounter
复制代码
bun :2 ^# z" T% R! u4 t% \, c
  1. bun create ton@latest simple-counter --type tact-counter --contractName SimpleCounter
复制代码
  1. message Add {
    . `4 i/ Y! f. N$ i0 U# p+ N* @
  2.     queryId: Int as uint64;9 X! R0 v, z9 o6 n3 o4 }8 @2 S
  3.     amount: Int as uint32;1 `6 ~9 r4 G, M  X( g! E
  4. }
    5 {/ h3 H2 G5 F. w
  5. - m5 T6 W$ }0 S1 ?; Z2 l: J
  6. contract SimpleCounter {! Z+ s5 X# s) S+ a
  7.     id: Int as uint32;
    : C0 I4 {; P; q+ E0 z3 }0 b. O
  8.     counter: Int as uint32;
    ' b6 i1 ]2 ~8 d. b; X5 P: {  c
  9. & p3 x- ]/ x* H
  10.     init(id: Int) {
    + ~5 I6 m, k$ c4 W0 W2 _
  11.         self.id = id;
    # @% o) @, H/ }
  12.         self.counter = 0;3 H# }' o% `* W0 z" M. G
  13.     }
      O/ M' r# E6 v! n8 D8 [

  14. ' K1 I, I; u/ i, [' f
  15.     // Empty receiver for the deployment: [% s3 P: O2 \4 I! i
  16.     receive() {8 P- |, R" z" ^1 }# b
  17.         // Forward the remaining value in the
    ( ]; H* U+ [1 ?4 t2 t
  18.         // incoming message back to the sender
    ( C! {+ o' H6 j8 T# K; x6 q
  19.         cashback(sender());. b) n' g% I% d  O" j' Y: e
  20.     }
    5 b* h6 V" [! e2 ?7 [0 Y  m
  21. % B+ I3 ?9 f* C+ A! J
  22.     receive(msg: Add) {+ e5 D* v! S- x0 D) Y. |, w
  23.         self.counter += msg.amount;
    4 a" c7 F9 O* P+ V5 q
  24. ; N6 B& u$ Q+ i0 c2 ?% k7 _# {: L
  25.         // Forward the remaining value in the! t: S( c5 V3 u# t3 e
  26.         // incoming message back to the sender
    4 {4 r1 x* a2 w
  27.         cashback(sender());
    6 ]2 s1 Y5 C, O3 X% r$ T- f
  28.     }: J/ L( \, L( ^6 A3 \" Q+ A3 r

  29. 2 E: v0 c6 l+ C. e. p. n5 }
  30.     get fun counter(): Int {6 J3 r0 L  g2 z7 [: A8 g7 f: X1 o
  31.         return self.counter;: r4 ^. ?2 V6 Q2 I/ V9 M0 E7 F$ ^6 v
  32.     }
    . m# l& L& Y" A

  33. , G$ X$ e) ]! V2 c% C- l8 j
  34.     get fun id(): Int {
    2 A) X! Z- b  F: W# _
  35.         return self.id;
    . F# t6 I0 W* I# s1 x4 V" B( v
  36.     }
    , T) ^- K( R: S8 U5 O* A
  37. }
复制代码
) V$ V9 d' A9 K, i

! r( f4 Y6 Z) n2 }2 N2 _9 Q/ i; x; q
4 \' Y% ^3 W* y  o5 ^4 C/ g; d  [# r! w# n4 C8 L
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则