---
# System prepended metadata

title: Solidity 書籍修改

---

# Solidity 書籍修改
2-9 2-9 Payable Address
![](https://i.imgur.com/wGWJ57i.png)

使用範例改成如下
```solidity=
// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.0;

contract Withdraw {
    // msg.sender: 呼叫此函式的"錢包"或"合約"地址
    
    // 初始化合約的同時，並匯入 ETH
    // 5-6 章節有介紹
    constructor() payable {}

    function withdrawByTransfer() public {
        payable(msg.sender).transfer(1 ether); 
    }

    function withdrawBySend() public {
        bool success = payable(msg.sender).send(1 ether);
        require(success);
    }       

    function withdrawByCall() public returns (bytes memory) {
        (bool success, bytes memory result) = payable(msg.sender).call{value: 1 ether}("");
        require(success);

        return result;
    }
}
```
3-3 Block Time
![](https://i.imgur.com/DIahfhs.png)

使用範例改成如下
```solidity=
// SPDX-License-Identifier: GPL-3.0
contract BlockTime {
    // 全部都是回傳秒數
    uint256 public second = 1 seconds;
    uint256 public minute = 1 minutes;
    uint256 public hour = 1 hours;
    uint256 public day = 1 days;

    // 訪問當前區塊時間
    function getBlockTime() public view returns (uint256) {
        return block.timestamp;
    }
}

```
2-2 Integer
![](https://i.imgur.com/QUIBqhi.png)

使用範例改成如下
```solidity=
// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.0;

contract MyInt {
    uint256 public myUint = 566778778787;
    uint32 public myUint32 = 4294967295;
    uint16 public myUint16 = 65535;
    uint8 public myUint8 = 256;
    
    int256 public myInt = -566778778787;
    int32 public myInt32 = -2147483648;
    int16 public myInt16 = -32768;
    int8 public myInt8 = -128;
    
    // 兩種表示最大值的方式
    uint8 public uint8_max = 2**8 - 1;
    uint8 public uint8_min = 0;

    int8 public int8_max = type(int8).max;
    int8 public int8_min = type(int8).min;

}

```

