Solidity中函數(shù)有三種裝飾器,分別是pure、view和payable。使用裝飾器可以輕松改變函數(shù)的行為。
pure 裝飾器
表示在函數(shù)中沒(méi)有修改任何函數(shù)以外的變量,包括狀態(tài)變量,只是單純地進(jìn)行了一個(gè)數(shù)值計(jì)算。函數(shù)的執(zhí)行并不會(huì)消耗任何Gas,因?yàn)楹瘮?shù)執(zhí)行使用的是本地節(jié)點(diǎn)的CPU,所以不會(huì)消耗任何鏈上資源。
contract HelloWorld{
?????????function testPure(uint?a, uint b) public pure returns(uint){
????????????????uint c;
????????????????c = a+b;
????????????????return c; ? ?
????????}
}
view裝飾器
在函數(shù)中使用view裝飾器后,函數(shù)將不會(huì)修改狀態(tài)變量,對(duì)鏈上數(shù)據(jù)只有讀取操作,同樣采用view裝飾器的函數(shù)不會(huì)消耗Gas。其實(shí)很好理解,因?yàn)閷?duì)于一個(gè)全節(jié)點(diǎn)來(lái)說(shuō),會(huì)同步所有數(shù)據(jù),并且保存在本地。如果合約需要查看區(qū)塊鏈上的數(shù)據(jù),直接在本地節(jié)點(diǎn)查詢數(shù)據(jù)即可,不需要將這次查詢發(fā)送到整個(gè)區(qū)塊鏈網(wǎng)絡(luò)的其他節(jié)點(diǎn),也不需要將這個(gè)函數(shù)的調(diào)用記錄在區(qū)塊鏈上,所以不會(huì)消耗鏈上資源,也無(wú)須消耗Gas。
payable裝飾器
在Soldity編寫(xiě)的合約中,只有增加了payable裝飾器的函數(shù)才允許在調(diào)用時(shí)接收或發(fā)送ETH文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-539375.html
function() payable public {} // payable關(guān)鍵字,表明調(diào)用此函數(shù),可向合約轉(zhuǎn)ETH文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-539375.html
到了這里,關(guān)于Solidity中函數(shù)有三種裝飾器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!