智能合约入门系列(三)

1,333 阅读2分钟

「这是我参与2022首次更文挑战的第3天,活动详情查看:2022首次更文挑战

前言

前2篇文章已经介绍了智能合约的相关一些东西,这篇就从一个hello world开始,走进智能合约的世界。
智能合约其实跟我们其他语言有很多类似之处,往下看你就懂了。

开发流程

1.选择语言和IDE

这里我们选择我们上篇所讲到的在线IDE工具 remix

语言当然是solidity

2.新建helloword文件

在下面界面新建一个helloword文件

可以看到我们新建成功了一个helloworld.sol文件,这时是空白的,接下来开始写代码

pragma solidity ^0.4.0;
contract HelloWorld{
string a;
function setValue(string param) public { 
   a = param;  }
}

pragma 关键字 表示当前合约选择的编译版本不允许低于0.4.0版本。

在这个0.4.0这个合约是能编译成功的,如下图编译后

但是如果我们选择高版本,将开头第一句换成

pragma solidity ^0.7.0;

这时候在编译就会产生如下错误

所以不同的版本编译合约会有适配问题,要按合约的版本去选择编译。这里按提示的错误修正后合约如下

// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.7.0;
contract HelloWorld{   
 string public a;        
 function setValue(string memory  param) public {   
     a = param;   
 }    
}

增加了第一句注释 表示遵循的许可证开源协议。

方法里参数增加memory声明,这是高版本solidity的要求。

这里注意的是将a声明为了public,表示编译后会有一个默认的get的方法可以直接获取到a的值。编译成功如下

接下来进行部署,选择Javascript VM环境,如图,表示部署成功

3.设置hello world

下一步进行设置helloworld,在setValue方法里输入hello world,点击

可以看到右下角出现交易的日志,表示成功。

4.输出hello world

接下来点击a按钮,表示调用get方法获取a的值,如下

可以看到有hello world输出,表示已经获取到了链上a的值。

总结

作为一个开发人员,每门语言我想应该都是从hello world开始,当我们凭借自己的练习成功输出hello world表示我们已经向成功迈进一步了,可以看到智能合约跟我们的其他语言也有相似之处,也有面向对象思想,本文部署和运行helloworld合约。我们并没有将合约部署到实际的链上,只是在JS 沙箱虚拟机中执行了它,接下来我们会更进一步领会其中的要点和部署到真正的区块链上。