通学智能合约系列(二)--你的第一个智能合约

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的语法。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值