Solidity
如何從字節呼叫數據 var 載入前 4 個字節?
bytes calldata
在 Solidity 中開發合約時,通常會對 calldata 進行編碼。我需要從這樣的字節變數中提取函式選擇器。載入前 4 個字節的最佳方式是什麼?
最省氣的方法是使用內聯彙編:
function foo(bytes calldata data) external payable { bytes4 selector; assembly { selector := calldataload(data.offset) } // ... }
偏移後綴是我們需要在內聯彙編中使用的特殊屬性,以便能夠讀取高級儲存變數。