美文网首页
solidity语言1

solidity语言1

作者: pp_5793 | 来源:发表于2018-10-09 22:07 被阅读0次

1 原文链接在这里:Solidity — Solidity 0.5.0 documentation,还主要参考了孔壹学院的视频,链接在这里:

编写智能合约1 :https://www.bilibili.com/video/av23371470/?p=11

注意这里的属性internal是solidity语言里默认的属性,它不能被外部访问,同时属性private也不能被外界访问,只有属性public才能被外界访问。

当属性类型为public时,会返回一个与属性名相同的get函数。

但是这里的get函数会覆盖掉原来的属性值。比如该代码(_money)返回值为120,而不是前面的0。

2 方法和行为就是合约里的函数。

智能合约2 :合约中的方法

function +方法名()+方法属性(返回值类型){具体函数内容}

合约中函数中方法的属性默认为public,在以太坊中可以被外部调用。此时编译可以得到四个值。

对上面的智能合约2 进行了修改如下所示:

在这里height 方法和money方法的属性分别被修改为internal和private。这表示他们不会被外部所调用,在编译后不会显示。而age和weight均为public都在编译后可见。

3 对合约1 的修改并在Remix上编译如下:

具体代码:

”编译结果如下:

这里给出解释:出现了两个方法:test1和test的,因为test和test1在合约中均是public的,可以被外部调用,出现一个属性_money,因为只有这个属性在前面被声明为public的。其余属性都不可见,至于test中没有返回值,是因为_age 属性在前面被声明为internal的。

继续修改以上合约:

在以上我们又写了四个方法,用来内部调用,注意这里的this.表示指针,在调用test和test1时由于是public类型,它们可以用this指针,但是internal和private 由于他们是内部的函数,是不能用this指针调用的,如果用this会报错的!

可以采取代码中的形式进行直接调用。

相关文章

网友评论

      本文标题:solidity语言1

      本文链接:https://www.haomeiwen.com/subject/yjxmoftx.html