亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么將address轉換為address payable

發布時間:2021-12-07 15:20:44 來源:億速云 閱讀:145 作者:iii 欄目:互聯網科技

這篇文章主要介紹“怎么將address轉換為address payable”,在日常操作中,相信很多人在怎么將address轉換為address payable問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么將address轉換為address payable”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

solidity 0.5將地址類型細分為addressaddress payable的目的在于,它有助于強制智能合約開發人員認真考慮一個地址是否應當接收以太幣,如果該地址根本不需要接收以太幣,那么就應當使用address類型。當地址被聲明為address類型后,如果開發者試圖向該地址轉入以太幣,就會導致編譯時類型錯誤。

addressaddress payable類型都用來存儲160位的以太坊地址,兩者的區別僅在編譯時存在,在編譯后的合約代碼中就沒有區別了 —— 也就是說,引入地址類型細分的唯一目的就是幫助開發者在編譯期理清一個地址的實際用途。

address payableaddress類型的變量都表示以太坊地址,都可以使用底層的.call()方法。從字面意思看,address payable表示可用于支付的地址,因此在address payable類型的變量上,你可以使用.transfer().send()方法,但是address類型的變量則不能使用這些方法。

因此,address payable類型的功能要強于address類型,容易理解,address payableaddress類型的轉換要容易一些(降級使用),而從address類型向address payable類型的轉換,則需要稍微轉個彎。

1、address payable轉換為address

address payable類型的變量可以顯式或隱式地轉換為address類型:

address payable addr1 = msg.sender;
address addr2 = addr1; // 正確
address addr3 = address(addr1); // 正確

2、address轉換為address payable

address類型的變量只能顯式地轉換為address payable,需要首先轉換為整數類型(例如uint160),然后再將該整型值轉換為address類型,就可以得到address payable

address addr1 = msg.sender;
address payable addr2 = addr1; // 錯誤,address不能隱式地轉換為address payable
address payable addr3 = address(uint160(addr1)); // 正確,先轉換為uint160,然后轉換為address payable

3、address[]或address payable[]的轉換

雖然單個address payable變量可以轉換為address類型,或者反之,但是不能直接將整個數組進行轉換。例如:

function testCast(address payable[] memory _addresses) returns (address[] memory)
{
    return _addresses; // 錯誤!
}

4、內置的變量類型

在Solidity的內置變量中,以下幾個變量的類型都是address payable

  • msg.sender

  • tx.origin

  • block.coinbase

你可以使用在線的Solidity IDE來測試本文中的Soldity代碼,以便更好地理解在Soldity 0.5中的address payableaddress類型的區別與相互轉換。

到此,關于“怎么將address轉換為address payable”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

罗山县| 吉首市| 昭平县| 寿宁县| 中西区| 阿拉善盟| 遵化市| 甘南县| 盖州市| 城市| 皋兰县| 天津市| 方城县| 无极县| 桂阳县| 灵丘县| 通许县| 广州市| 华坪县| 武清区| 政和县| 大姚县| 西贡区| 湾仔区| 潞西市| 霸州市| 井冈山市| 京山县| 伊川县| 丰城市| 肥东县| 鄂伦春自治旗| 南城县| 阿拉善右旗| 新和县| 贺州市| 黑山县| 景洪市| 平和县| 丰原市| 罗源县|