环境说明: Ide:在线remix Solidity IDE
语言:solidity solidity
版本号:0.4.20
Tip:如果一点都不懂的建议从头开始看
运行结果截图我不赘述,所有合约代码均通过个人检测。请按照标准进行操作,如出问题检测是否网络连得上外网,且操作按照第一节内容类似操作;由于版本更新,可能会出现不同,但该教材代码均适用于在0.4.20 版本使用
为什么要用0.4.20 这个老版本。。。我可能习惯用,每次更新都一对老代码报错,太懒了就默默的用着0.4.20版本。。。
在solidity中,合约的语法和面向对象很相似,在一般的面向对象语言中,我们使用class来定义一个类;在这一个类中我们将会有这个类的方法属性。
在solidity中,我们使用contract来定义一个合约,这个合约可以用对应的合约变量,以及合约的方法。
一个简单合约的定义:
pragma solidity ^0.4.20;
contract Test{}
首先:pragma solidity ^0.4.20; 声明版本号
contract 创建一个名为 Test 的合约
接下来在合约其中书写合约变量以及一些简单的读取函数:
pragma solidity ^0.4.20;
contract Test{uint256 val;//声明变量//设置方法function set(uint256 x)public{val=x;}//取值function get() public constant returns(uint256){return val;}
}
代码解析:
set函数
pragma solidity ^0.4.20;:
版本号说明
contract Test{} :
合约定义
uint256 val;:
声明uint 无符号整形256位类型的变量 val
function set(uint256 x)public{}:
定义public的类型的函数set 并且接收参数x为uint256类型的参数。
在这里,我们类似于c++,java,类型修饰符大多是在函数开头修饰,在这里,public位于函数开头中后位置修饰,这点有点类似于golang,如果我们去掉public则默认为public函数。
在0.4.2版本如此,如果去掉public可能会比较好理解:function set(uint256 x){}
这样就和常规的声明函数差不多了。
函数内容:
val=x;
把传入的参数x的值赋值给合约变量val,这个val就等于和类成员变量一样
get函数:
function get() public constant returns(uint256){}:
声明get函数
public修饰符修饰
constant 表示这个函数没有修改操作,只是读取之类
returns() 表示返回值为
uint256 表示返回值为uint256
return val;:
返回val的值
运行:
部署好之后:
随便输入一个值到set:
之后点击get将会返回刚刚你设置的值:
记住,一定要选择狐狸钱包和测试网络并且解锁,也就是刚登陆的时候打密码打开你的钱包。