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

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

回答

收藏

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

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

Tact 是 TON 区块链的一种新编程语言,注重效率和简便性。 它设计得易于学习和使用,并且非常适合智能合约。 它设计得易于学习和使用,并且非常适合智能合约。 Tact 是一种静态类型语言,具有简单的语法和强大的类型系统。
, C: l' Q3 I- J% ^) m9 a
9 W9 W- m! A1 E7 l! V🚀 我们开始吧!) M% n* a2 [. \1 Y) m
6 T4 {4 f) K( P5 ?8 p! d) S
确保已安装受支持的 Node.js 版本并可用, C' Q  q# s9 S
要检查它,请运行 node --version —它应该会显示 22.0.0 或更高版本。
( I: S0 i0 `/ H2 X. }  B# ?: p7 j7 J* h. f  H; `0 o
运行以下命令' i8 I/ k8 x: L. A% P  h
它将创建一个带有简单计数器合约的新项目:  a# C* `/ `! N4 w- v+ i5 v
8 @) ~$ t' N" V
yarn :3 E- c( c! @" h& s- U. Q" K
  1. yarn create ton simple-counter --type tact-counter --contractName SimpleCounter
复制代码
npm :
9 N$ J& H5 L5 \/ N  H+ S5 B
  1. npm create ton@latest -- simple-counter --type tact-counter --contractName SimpleCounter
复制代码
pnpm :
* @5 _0 e7 n# M) b& {
  1. pnpm create ton@latest simple-counter --type tact-counter --contractName SimpleCounter
复制代码
bun :
- r( ]+ S) F% J* ^' v, E1 _
  1. bun create ton@latest simple-counter --type tact-counter --contractName SimpleCounter
复制代码
  1. message Add {4 r. r, O( F3 J/ L: d* y! P  J
  2.     queryId: Int as uint64;  i# N5 Q9 e+ h- t" A
  3.     amount: Int as uint32;7 d' D, x6 {1 G$ Y
  4. }
    : t" B! }( `. `  M/ n$ h: a
  5. 8 s5 E! D* C+ M* X! n
  6. contract SimpleCounter {
    - K( H4 `5 f7 X* o. l  b/ I' _
  7.     id: Int as uint32;9 f: q( y  ^: H# `/ |& _
  8.     counter: Int as uint32;; J' S; r3 Y* U% v, ^
  9. 8 a+ D/ Z1 W# P% F/ l( s
  10.     init(id: Int) {
    + y9 h2 A! n# w) j
  11.         self.id = id;, S. h6 v9 Y4 c" H+ H' [
  12.         self.counter = 0;( H" M  j# p. f% K5 o
  13.     }9 Y7 ~" Y2 [* F6 V+ P8 y% B

  14. 1 e+ [* t' T& ]0 N% l# R
  15.     // Empty receiver for the deployment2 ?9 S$ |+ H. p5 P- w8 Y
  16.     receive() {
    5 C5 z6 B/ E1 W2 u
  17.         // Forward the remaining value in the
    2 b- X6 K4 ]+ Y9 L2 e! ?8 \; P5 ^* L
  18.         // incoming message back to the sender4 q9 J7 G, H4 E' v
  19.         cashback(sender());
    & k+ u( s% u* |8 s; A) r
  20.     }' k  h5 |8 I7 P. Z: _- p

  21.   Y' n; o% k; l) n/ R$ P
  22.     receive(msg: Add) {
    $ s' P) u: }1 n9 }. O
  23.         self.counter += msg.amount;( y- y! L+ s+ \
  24. 4 h, f4 t& N. Q+ m2 i5 L
  25.         // Forward the remaining value in the7 F) c; B+ @/ R) j# R: ~; C
  26.         // incoming message back to the sender
    8 B9 Y$ U6 `6 L+ R3 t$ h$ v8 o
  27.         cashback(sender());
    7 Y6 `) m/ d- \% r- t
  28.     }
    6 k/ g' j1 D; I- V

  29. % h1 q/ J  [1 S
  30.     get fun counter(): Int {
    * K; @+ M7 Q$ z6 P1 a0 G; M
  31.         return self.counter;
    " K% n0 F1 c) N- P: Z; P
  32.     }
    1 ]% e( K) `9 S
  33. ; f4 j/ K: h6 P$ u3 Y
  34.     get fun id(): Int {
    3 G8 G* X, P  D; b+ a1 h. w
  35.         return self.id;) Q; |; g$ ]7 v: P7 H) Z. e
  36.     }9 n. x7 f6 ]3 k6 I) g8 q: P; ?
  37. }
复制代码

# @! p: w7 N2 q; d' G* ]' K! j) E* M' E
: |) w6 P& V# v
# P6 [, V# s/ l2 V6 S; r. W& V
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则