公开函数是合约接口的一部分,可以通过内部,或者消息来进行调用 对于public类型的状态变量,会自动创建一个访问器。 函数默认可见性是public
私有函数和状态变量仅在当前合约中可以访问,在继承的合约内,不可访问。
外部函数是合约接口的一- 部分,只能使用消息调用(this.xxx())复制代码(这就像是java中的成员方法,只能由对象调用,不能直接被调用,在solidity里没有对象的概念,只有消息的概念)
函数和状态变量只能通过内部访问。如在当前合约中调用,或继承的合约里调用(类似于java中的protect)。状态变量默认的可见性是internal(状态变量就类似于java中的成员变量,属于某个对象(合约))
在合约创建的时候运行的函数,可以在里面做一些初始化的操作
表示不会修改状态,constant和view是等价的,在新版中推荐优先使用view。 以下几种情况会被认为是修改了状态:
既不会修改状态也不会读取状态变量
当我们一个智能合约需要接受以太币的时候,我们就需要实现这样一个回退函数,他会被被动调用; 当我们调用了一个合约,但是没有匹配到函数的时候,就会调用回退函数。 这个回退函数可以写一些逻辑,但是尽量避免不要写复杂的逻辑。因为如果实现复杂的话,很容易引起发起交易的人由于发送的gas不够,而导致交易失败。 如果没有这个回退函数,就会报错。 并且回退函数 只能有一个。 image.png
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
QQ咨询|关于我们|Archiver|手机版|小黑屋|( 辽ICP备15012455号-4 ) Powered by 期权论坛 X3.2 © 2001-2016 期权工具网&期权论坛 Inc.
下载期权论坛手机APP