solidity之函数篇

本文探讨了Solidity中的函数可见性,包括Public、Private、Internal和External四种类型,重点解析了payable、view和pure函数的区别以及使用场景。同时,介绍了fallback函数在智能合约中的作用,如货币管理和错误处理。提供了详细的github仓库链接供进一步学习。
摘要由CSDN通过智能技术生成

solidity 之函数篇

函数可见性(Function Visibility)

Solidity 中主要有 4 种可见性的关键字

  • Public:公有函数
  • Private:私有函数,只有定义该函数的合约本生能够调用,衍生合约或者外部无法调用
  • Internal:内部函数,只有定义该函数的合约本生和衍生合约能够调用。
  • External:外部函数,只有外部合约或者地址能够调用。合约则无法调用。

其中需要特别注意的是只有 public 和 external 函数可以加上 payable 特性,而 internal 和 private 函数就不行。

View vs Pure ?

函数也能够接受不同的关键词。solidity 的编译器中也提到了这些信息。下面是关于这 2 个关键词的介绍。

  • View : view 函数可以读取合约中存储的信息,但是不能够改变合约存储的信息。所以它们是理想的 getters。view 函数在执行的时候不需要消耗 gas。但是,有一些需要注意的事项。如果 view 函数在外部调用,它是不需要消耗任何的 gas 的。如果 view 函数被合约内部调用的另一个非 view 函数中调用,它还是会消耗一些 gas。那是因为别的函数在链上创建了交易,这项交易需要被网络上的其它节点进行验证。

  • Pure : pure 函数既不能读取也不能修改合约中存储的信息。大部分情况下,pure 函数用作计算,就像执行数学或者密码学操作的时候。

payable function

当 payable 关键

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值