「这是我参与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 沙箱虚拟机中执行了它,接下来我们会更进一步领会其中的要点和部署到真正的区块链上。