Solidity
合約類型和地址有什麼區別?
我在這裡看到:
Contract TokenCreator { function createToken(bytes32 name) public returns (OwnedToken tokenAddress) { // Create a new `Token` contract and return its address. // From the JavaScript side, the return type // of this function is `address`, as this is // the closest type available in the ABI. return new OwnedToken(name); } // some other code }
從函式定義中你可以看到它返回一個類型的值,
OwnedToken
這個值類型和類型有什麼不同address
?為什麼不直接說返回類型是地址呢?
因為,返回類型不是
address
一個合約(OwnedToken
),它具有您可以呼叫的公共方法和屬性(來自solidity)。在 javascript 端或(其他 web3 客戶端庫)上,ABI 中最接近的類型是地址(如您問題程式碼塊中的註釋中所述),因此它被轉換為。