区块链 以太坊 全局变量 状态变量 局部变量 是什么 区别
  DJsdk34H4Gbu 2023年11月02日 52 0


pragma solidity ^0.4.25;
contract Sample{

//State variables
address private _admin;
uint private _state;

//Modifier
modifier onlyAdmin(){
require(msg.sender == _admin, "You are not admin");
_;
}

//Events
event SetState(uint value);

//Constructor
constructor() public{
_admin = msg.sender;
}

//Functions
function setState(uint value) public onlyAdmin{
_state = value;
emit SetState(value);
}

function getValue() public view returns (uint){
return _state;
}


function stringSample() public view returns(bytes){
string memory str = "abc";
bytes memory b = bytes(str);
//0x616263
return b;
}

}

1. 状态变量

状态变量是合约的骨髓,它记录了合约的业务信息。用户可以通过函数来修改这些状态变量,这些修改也会被包含到交易中;交易经过区块链网络确认后,修改即为生效。

如:

uint private _state;

2.局部变量

比如stringSample()函数中的

string memory str = "abc";

3. 全局变量

区块链 以太坊 全局变量 状态变量 局部变量 是什么 区别_区块链

示例合约代码的构造函数中,包含msg.sender。它属于全局变量。

在智能合约中,全局变量或全局方法可用于获取和当前区块、交易相关的一些基本信息,如块高、块时间、合约调用者等。


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
DJsdk34H4Gbu