其他分享
首页 > 其他分享> > 通学智能合约系列(二)

通学智能合约系列(二)

作者:互联网

HelloWorld带你进入Solidity的世界

在线Remix编辑器: http://remix.hubwiz.com/

我们学习任何一门编程语言的时候,都是从helloWorld开始的,当然,Solidity也不例外。

正所谓工欲善其事,必先利其器。要学习这门语言,我们需要先找一个容易上手的环境。这里Remix便已经为我们准备好了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0Dkyg37s-1612189381058)(C:\Users\49178\AppData\Roaming\Typora\typora-user-images\image-20210131230640747.png)]

打开在线编辑器后,我们会看到如上图三大块,接下来就可以编写我们的第一个智能合约HelloWord.sol了。

helloWorld

我们编辑如下程序:

//声明版本号
pragma solidity ^0.4.16;
//合约 有点类似于java中的class
contract HelloWorld{
    //合约属性变量
    string myName = "通学Java";
    //合约中方法 注意语法顺序 其中此处view 代表方法只读 不会消耗gas
    function getName() public view returns(string){
        return myName;
    }
    //可以修改属性变量的值 消耗gas
    function changeName(string _newName) public{
        myName = _newName;
    }
    // pure:不能读取也不能改变状态变量
    function pureName(string _name) public pure returns(string){
        return _name;
    }
    
}

这段代码对于有经验的开发人员来说,应该不用做过多解释,需要的是你自己亲手敲一遍哦。

这里值得注意的是:程序中的版本号要和右侧编译器版本号一致。本文档统一采用版本号0.4.16.

小知识:

用constant、view、pure修饰function分别表示:

  • constant:只能读取不可改变状态变量(就是contract中定义的变量)
  • view:只能读取不可改变状态变量,和constant一样
  • pure:不能读取也不能改变状态变量

想要详细了解他们的区别,请点击: https://www.jianshu.com/p/5f1bc0d39d79

这里我们重点看两张图,如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lAsirHWl-1612189355379)(C:\Users\49178\AppData\Roaming\Typora\typora-user-images\image-20210131231501462.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aHczjCus-1612189355380)(C:\Users\49178\AppData\Roaming\Typora\typora-user-images\image-20210201202335993.png)]

发布合约过程

整个的一个过程如下:

编写合约->编译->部署

其他选择框全部默认即可。

执行完成之后,我们可以得到以下交易信息(也是我们生成的区块信息):

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MlQpuWBU-1612189355382)(C:\Users\49178\AppData\Roaming\Typora\typora-user-images\image-20210201204437923.png)]

依次是我们的

  1. 交易状态:代表我们交易的执行结果。
  2. 交易哈希:标记转账需要的字段,通俗来讲就是个人转账凭证。每一个哈希对应交易是唯一的,可以确认交易的隐私性和安全性。
  3. 合约地址:我们合约部署的区块的地址。
  4. from:发送者地址
  5. to:接收者地址。
  6. gas:交易环境能耗上限。
  7. 交易消耗:该笔交易占用gas。
  8. 执行消耗:该笔交易执行消耗的gas
  9. 哈希值:应该是破解工作量证明的hash值吧???但是和上面的交易hash区别在哪里呢?
  10. input、decoded input decoded output 这几个东东目前还不能理解是啥。先搁着。

以上的信息不是我们这篇文档的重点,后续有机会做单独阐述。

就代码层面而言,我们可以看出还是很简单的。下节,我们重点来看看solidity的语法。

标签:string,版本号,通学,gas,我们,智能,合约,交易
来源: https://blog.csdn.net/aiwaston/article/details/113531132