Solidity 值类型、变量 和 函数

类型

整型

int / uint :分别表示有符号和无符号的不同位数的整型变量。 支持关键字 uint8 到 uint256 (无符号,从 8 位到 256 位)以及 int8 到 int256,以 8 位为步长递增。 uint 和 int 分别是 uint256 和 int256 的别名。

contract Base {
	// 整型应该和 java 或者 c 等强类型语言差不多
	uint num = 1;
	int num3 = 1;
}

字符串

字符串 有两个关键字 是 storagememory
storage 这个是会永久存贮在区块链中
memory 这个是存贮在内存中

contract Base {
	string str1 = "1"; // 这个 str1 会永久存贮到区块链上
	// 这里函数传参的时候的 _str会存贮到内存中
	function fn(string memory _str) public {
		str1 = _str;
	}
}

布尔类型

contract Base{
	bool boo = false;
	
	function onChange(bool _boo) public {
		boo = _boo;
	}
}

地址类型

contract Base {
	address owner= msg.sender;
	
	function changeOwner(address _owner) public {
		owner = owner;
	}
	// 表示一个地址为空
	address n = address(0);
}

全局变量

blocktxmsg

Block
  • block.blockhash(uint blockNumber) returns (bytes32):指定区块的区块哈希——仅可用于最新的 256 个区块且不包括当前区块;而 blocks 从 0.4.22 版本开始已经不推荐使用,由 blockhash(uint blockNumber) 代替
  • block.coinbase (address): 挖出当前区块的矿工地址
  • block.difficulty (uint): 当前区块难度
  • block.gaslimit (uint): 当前区块 gas 限额
  • block.number (uint): 当前区块号
  • block.timestamp (uint): 自 unix epoch 起始当前区块以秒计的时间戳
Msg
  • msg.data (bytes): 完整的 calldata
  • msg.gas (uint): 剩余 gas - 自 0.4.21 版本开始已经不推荐使用,由 gesleft() 代替
  • msg.sender (address): 消息发送者(当前调用)
  • msg.sig (bytes4): calldata 的前 4 字节(也就是函数标识符)
  • msg.value (uint): 随消息发送的 wei 的数量
  • now (uint): 目前区块时间戳(block.timestamp)
tx
  • tx.gasprice (uint): 交易的 gas 价格
  • tx.origin (address): 交易发起者(完全的调用链)

函数

contract Base{
	/* 一个函数的结构  
	下面的函数结构除了 可见性 和函数名称是必须写的,
	剩下的都是可写可不写的,根据实际情况来就可以了
	*/
	function 函数名称(参数类型 参数名称) 可见性 修改器 retuns(值类型) {
		body.....
	}
	// 实例
	function getMsgSender(address _owner) public view retunrs(address) {
		retunrn msg.sender;
	} 
} 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小李看前端

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值