Solidity语法

Solidity语法

数据类型(值类型)

uint

(unity, int), 整数型
可保存0, 以及正整数
范围: 2**256 - 1, 2的256次方

address

(地址类型, 是合约语言的特殊数据类型)
160位值, 不允许操作;
适合存储 合约地址 或外部人员密钥对
地址具有balance属性, 返回该帐户可用的以太币数量

  • transfer, 转帐
  • send, 返回布尔值, 转帐成功与否的信息
  • Call
  • DelegateCall
  • Callcode

int

可以保存, 正负, 有符号整数

bool

true或false

byte

固定大小字节数组

枚举

数据类型(引用类型)

字符串

Solidity中, 字符串可以使用单引号或双引号, 类似Python.

映射

Solidity中映射与Go映射或相同. 但, 不允许遍历. 只能通过键获取值.

mapping(uint => address) Names;

以上声明过程中,
uint => address : 代表, 键为uint类型, 值为address类型.
Names: 作为映射的标识符.
存储值:
Names[uint(2)] = 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4 获取值: Names[uint(2)]`

数组

  • 固定数组:
    int[5] age;
  • 动态数组:
    int[] age;

结构

与Go中的结构体相同:

Go中无类, 类通过结构体实现. Solidity有合约(类似类), 结构体只保存变量

struct user {
	string name;
	uint age;
	int id;
	address addr; 
}

关键字

public

放在类型后面, 变量名前面.

address public mydress

起到的作用:
在编译器进行编译的时候, 把该变量自动生成一个函数, 进行显示.
使该变量在合约外可进行调用.

constructor

一般放在合约内, 函数前.
合约在创建的时候运行, 其他的时间无法进行调用.
适合用于进行一些初始参数, 或常量的设置.

特殊变量

  • msg.data ( bytes ): 完整的 calldata
  • msg.sender ( address ): 消息发送者(当前调用)
  • msg.sig ( bytes4 ): calldata 的前 4 字节(也就是函数标识符)
  • msg.value ( uint ): 随消息发送的 wei 的数量
posted @ 2023-06-01 15:29  Jrri  阅读(44)  评论(0编辑  收藏  举报