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

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

回答

收藏

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

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

Tact 是 TON 区块链的一种新编程语言,注重效率和简便性。 它设计得易于学习和使用,并且非常适合智能合约。 它设计得易于学习和使用,并且非常适合智能合约。 Tact 是一种静态类型语言,具有简单的语法和强大的类型系统。1 _# w3 o+ M7 H# i/ c2 d

9 M9 |( @& X/ K/ }🚀 我们开始吧!
* w( b7 r6 v# n
8 F6 W$ |4 C2 X确保已安装受支持的 Node.js 版本并可用: A/ C0 ?$ C. p, w+ k# C" B8 h
要检查它,请运行 node --version —它应该会显示 22.0.0 或更高版本。
+ l$ H' {  e0 @2 d0 o$ ^; {+ \' ?2 `$ j) G+ F& @
运行以下命令
0 \; I- H+ G# N- t  v& h它将创建一个带有简单计数器合约的新项目:* u' x5 W* s. r2 f5 t' M+ q
5 k1 E( S% ]0 c3 U- ^
yarn :1 \9 c, l  t& Z: t! W7 O
  1. yarn create ton simple-counter --type tact-counter --contractName SimpleCounter
复制代码
npm :
0 t, W6 G; L% G- C# f9 e( A! i
  1. npm create ton@latest -- simple-counter --type tact-counter --contractName SimpleCounter
复制代码
pnpm :; L8 h7 a! r; _5 Q* A
  1. pnpm create ton@latest simple-counter --type tact-counter --contractName SimpleCounter
复制代码
bun :
7 r/ v( E) I6 {( ?# E' t/ b8 g
  1. bun create ton@latest simple-counter --type tact-counter --contractName SimpleCounter
复制代码
  1. message Add {: z' I$ I1 z, _9 m& o5 ?
  2.     queryId: Int as uint64;. Y$ U9 e; [& e8 Y2 g
  3.     amount: Int as uint32;
    ' _+ U  @5 X, Z+ \; R4 d
  4. }
    2 l6 w' h( E; E7 S! N, x

  5. 9 e) G. b* E# m* y! Q
  6. contract SimpleCounter {- N4 o: K) \8 V- G" D
  7.     id: Int as uint32;9 C$ h8 s/ |2 ~" p/ j/ d" z
  8.     counter: Int as uint32;
    & V" p2 M4 ^  o8 E: M

  9. % i) N1 T, b3 f7 W! r$ g) C
  10.     init(id: Int) {
    " h& }! g" Y: A2 y5 D
  11.         self.id = id;* d# [. _- |( b  l- }9 y6 T
  12.         self.counter = 0;& `6 w0 n: Z. ]- H
  13.     }
    ; W9 G0 W0 L0 i, U# k

  14. * w! Y5 E9 k6 K
  15.     // Empty receiver for the deployment8 a+ F" \- X  o$ M; M
  16.     receive() {
    0 q1 Q! _0 [' o* K+ h
  17.         // Forward the remaining value in the
    " D( }/ F7 i  J! [- I
  18.         // incoming message back to the sender$ ?1 F3 |5 y- H  C. o
  19.         cashback(sender());+ |" d# @- B' a: X) q- J
  20.     }7 x0 v" s; b6 ]% O8 p0 r# q* ~

  21. ) C5 Q1 c* s( q8 {1 v
  22.     receive(msg: Add) {. E* B  m8 _/ `* K- k8 p/ }
  23.         self.counter += msg.amount;
    ! q- P+ W$ L0 V  I1 W

  24. 0 O& \, p1 ~6 D, l( i# u1 ^
  25.         // Forward the remaining value in the
    , R; ~5 _1 J9 P- }
  26.         // incoming message back to the sender
    ; v$ Y! A" E8 e/ n) V$ E1 k
  27.         cashback(sender());
    ! k1 d8 S  |- r
  28.     }
    / \8 h; |- O! X! V' k8 u. F/ V, L
  29. ' I7 `1 L0 @2 P
  30.     get fun counter(): Int {, m( Q* {" m5 B2 X! H
  31.         return self.counter;
    6 M' {; Z; z1 ]8 I6 V
  32.     }
    4 ^1 E0 c5 H4 ?. |/ H) z# u, o
  33. $ n3 G* Z/ f/ _) Z- a3 f
  34.     get fun id(): Int {- a  _6 t+ ~: H
  35.         return self.id;
    , S, I$ L. f3 Q- H7 U6 q0 d
  36.     }5 J* W8 w# s* _+ Z' r: {
  37. }
复制代码
& d+ m2 G3 D/ P8 g6 Y9 z
7 j# q! w8 W- O+ T' `; H

5 w$ {1 S5 l; @# K! s: U# p7 E1 W( B! K6 E9 C  ]" b) E
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则