---
# System prepended metadata

title: solidity function type
tags: [solidity]

---

###### tags: `solidity`

# solidity function type 

* public : 外部以及繼承都可使用

* pivate : 外部以及繼承都不能使用

* external : 外部可使用 繼承不能使用

* internal : 外部不能使用 繼承可使用

# View, Pure, Payable

**View** 函數是只讀函數，不會修改區塊鏈的狀態。換句話說，如果你想從區塊鏈中讀取數據，可以使用 View 函數

**Pure** 函數比 View 函數更具限制性，
並且不修改狀態，也不讀取區塊鏈的狀態。
換句話說，他是純粹幫助運算、執行其他函數的函數

**Payable** 函數的話請記住以下幾點
在函數或狀態變數中使用payable來發送和接收乙太幣
在狀態變數中包含payable，以便從合同中退出
在構造函數中包含payable，以便在創建/部署合約時能夠存入合約
在函數中包含payable，以允許將存款存入合同