calldata:是一個不可修改的踊淳、非持久化的區(qū)域假瞬,函數(shù)參數(shù)存儲在內(nèi)存。是一個常數(shù)迂尝,只能用于函數(shù)聲明參數(shù)脱茉,是不可變的(不能被覆蓋和更改),調(diào)用數(shù)據(jù)避免了數(shù)據(jù)拷貝垄开,并確保數(shù)據(jù)不被修改琴许,是臨時的(該值在事務(wù)完成后會銷毀),必須用于external函數(shù)的動態(tài)參數(shù)溉躲,外部函數(shù)的參數(shù)(不包括返回參數(shù))被強制指定為calldata榜田,是最便宜的存儲位置gas費會比較低。
memory:是函數(shù)里的參數(shù)和臨時變量锻梳,存儲在內(nèi)存中箭券,不上鏈。
storage:合約里的狀態(tài)變量默認都是storage疑枯,存儲在鏈上辩块。
我是溫馭臣,一個Solidity的開發(fā)學(xué)習(xí)者荆永,以上是我的簡單總結(jié)废亭,如果有缺陷,希望在評論區(qū)看到您的補充具钥。