練習題 1
- 請敘述四種 Solidity 函式的可視性分別對於當前合約 (MyContract)、繼承合約 (DerivedContract)、其他合約 (AnotherContract)的訪問權限。
public - 任何的合約和帳戶都可以呼叫這個函數,也就是在合約的外部和內部均可見。
private - 只有當前合約可以呼叫這個函數,任何外部或繼承合約皆不可呼叫。external - 只有除了自己和繼承合約以外的合約或帳戶可以呼叫此函數。
internal - 只有自己和繼承合約的合約或帳戶可以呼叫此函數。
練習題 2
- 請實作一函式 getContractBalance() 來查看當前合約擁有的餘額。
// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;
contract Balance {
function getContractBalance() public view returns(uint){
return address(this).balance;
}
}
這個合約提供了一個簡單的功能,讓任何人都能夠查詢合約當前的餘額
練習題 3
- 請使用 Fallback Function 使合約可以接收外部的匯款。 並且使用 REMIX 介面匯款給合約。最後利用上一題的 getContractBalance() 查看一切是否運作正常。
// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;
contract Balance {
function getContractBalance() public view returns(uint){
return address(this).balance;
}
fallback() external payable {
// Handle incoming ether in the fallback function
}
receive() external payable {
// Handle incoming ether in the receive function
}
}

















