---
title: 'Solidity WTF 101 11 ~ 12 單元'
lang: zh-tw
---
Solidity WTF 101 11 ~ 12 單元
===
:::info
:date: 2024/09/27
:::
[TOC]
## 課程學習
### 構造函數與修飾器
---
#### 構造函數
`constructor`又稱為構造函數,他再合約執行時會自動執行一次,所以`immutable`可以在此做賦值。
```xml=
<!-- 這邊宣告一個為immutable的變數,可以不用先宣告值 -->
uint256 public immutable _firstValue;
constructor(
<!-- 這邊做一些參數設置 -->
uint256 _value
) {
<!-- 這邊做邏輯 -->
_firstValue = _value;
}
```
#### 修饰器
`modifier`這邊叫做修飾器,通常用於處理檢查等任務。
```xml=
<!-- 這邊先宣告 -->
modifier onlyOwner {
<!-- 检查调用者是否为owner地址 -->
require(msg.sender == owner);
<!-- 如果是的话,继续运行函数主体;否则报错并revert交易 -->
<!-- 函數主體的意思是,哪一個函數如果使用此modifier的onlyOwner
函數內的logic就是函數主體 -->
<!-- 一定要加上否則會噴錯 -->
_; //
}
<!-- 創建一個函數並且加上 onlyOwner 的 modifier -->
function changeOwner(address _newOwner) external onlyOwner{
<!-- 只有owner地址运行这个函数,并改变owner -->
owner = _newOwner;
}
```
### 事件
---
首先,先知道下面的網址:
* [Etherscan](https://etherscan.io/)
* [領取測試幣方法](https://support.token.im/hc/zh-tw/articles/19967535751065-%E5%A6%82%E4%BD%95%E5%9C%A8-imToken-%E7%8D%B2%E5%BE%97%E4%BB%A5%E5%A4%AA%E5%9D%8A%E6%B8%AC%E8%A9%A6%E5%B9%A3)
* [領取網站](https://www.infura.io/faucet/sepolia)
- 領取方式
- 安裝`MetaMask`狐狸錢包後並創建一個錢包

- 首先到網站之後給予`address`,貼上後點選`RECEIVE ETH`

- 會跳出一個`Popup`,點選連結過去後會到`Etherscan`網站
可以查看領取的狀態跟地址以及數量,甚至是Gas Fee。

- 之後就能夠再狐狸錢包的測試鏈上出現自己領取的測試幣


通常只會給予`0.1ETH`給你當作測試幣
:::warning
:warning: 事件筆記目前只先記錄如何領取測試幣,會單獨出一篇事件筆記。
:::