第一个合约
pragma solidity ^0.4.0;
contract HelloWorld{
string Myname = "Emission";
function getName() public view returns (string)
{
return Myname;
}
function changeName(string _newName) public
{
Myname = _newName;
}
}
- pragma:版本编译指令,编译器会读取这个版本要求,如果当前编译器的版本与要求不符合,就会提示出错。例如0.4.0,“”符号表示,程序可以跟任何 次 版本号高于0.4.0的编译器兼容;
- 权限标识符:
- public:设定为public的函数可以被外部账户的交易、其他合约和本合约内部调用。
- external:定义为external的函数类似于public,但不能在合约内部调用,除非在调用时指明关键字this
- internal:internal函数只能被合约内部的函数调用,不能被外部账户的交易或者其他智能合约调用。它们还可以被派生的子合约调用
- private:private函数与internal函数类似,但不能被当前合约的派生子合约调用
- 关于函数行为的关键字
- constant或者view:当函数被标注为view时,它将承诺不对任何状态进行修改。constant时view的另一种表示方法。
- pure:表示这个函数不会在区块链存储中读取和写入任何数据。这样的函数只能处理参数,然后返回值给调用方,无法在区块链上读取或者存储任何数据。
- payable:表示函数用于接收外部的支付。未声明未payable的函数不能接收任何以太币支付。
Remix的使用
编译器界面
编译器界面- 对选定的.sol代码进行编译。
部署
-
选择需要的虚拟账户后对智能合约进行部署
-
暂时个人的理解,但不一定对。智能合约有一点点面向对象中的类的味道,但部署后就会只有形成一个该合约对象的实例。
-
部署后显示合约内的函数接口,可以进行相关的调用。
-
相关交易信息
网友评论