solidity编写eth智能合约之contract 创建合约(二)

版权声明:本文为博主原创文章,转载请注明出处:http://blog.csdn.net/a757291228 https://blog.csdn.net/A757291228/article/details/85134166

环境说明: 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:
set
之后点击get将会返回刚刚你设置的值:
在这里插入图片描述
记住,一定要选择狐狸钱包和测试网络并且解锁,也就是刚登陆的时候打密码打开你的钱包。
在这里插入图片描述

展开阅读全文

没有更多推荐了,返回首页