Solidity儲存關鍵詞memory含義?

2021-09-20 08:40:47 字數 955 閱讀 1418

沒有memory這個關鍵字,solidity在儲存storage中宣告變數。

領導solidity開發的chriseth這麼說:」你可以把儲存storage看作是乙個大的陣列,它有乙個虛擬結構,乙個在執行時不能改變的結構——它是由你的智慧型合約中的狀態變數決定的」。

也就是說,在基於智慧型合約級別的變數宣告在智慧型合約建立時,儲存結構是在stone中設定的,並且不能被將來的方法呼叫和更改。但是,儲存的內容可以用state variables呼叫來改變。這樣的呼叫改變了state,這就是為什麼合約級變數被稱為狀態變數。因此,在合約級別宣告的變數uint8儲存變數可以更改為uint8(0~255)的任何有效值,但是uint8型別的值的slot槽位將始終存在。

如果在沒有memory關鍵字的函式中宣告變數,那麼solidity將嘗試使用當前已經編譯好的儲存結構,但會產生意想不到的結果。memory告訴solidity,以便在方法執行時為變數建立一塊空間,保證其大小和結構,這樣將來就可以在該方法中使用。

memory不能在合約級別使用。只有方法中使用。

以太坊虛擬機器有三個可以用來儲存的區域:

對於幾乎所有型別,都不能指定它們儲存的位置,因為它們每次使用時都會被複製。

所謂儲存位置重要的型別是結構和陣列。如果你在函式呼叫中傳遞這些變數,那麼如果它們可以留在memory記憶體中或留在storage儲存中,它們的資料就不會被複製。這意味著你可以通過呼叫函式中修改它們的內容,這些修改對呼叫方仍然可見。

儲存位置的預設值取決於它關注的變數型別:

原文:

關鍵詞密度

百科名片 目錄 隱藏 什麼是增加keywords密度的最好方式 關鍵字堆砌 keyword stuffing 的定義 關鍵字堆砌 keyword stuffing 關鍵字堆砌 keyword stuffing 是指在乙個網頁中非常密集地放置關鍵字。一般說來,如果關鍵字的出現過於頻繁,就會蓋過網頁的其...

關鍵詞提取

隱含主題模型優缺點 隱含主題模型可以很好地表示文件和標籤主題,有效降低標籤系統中噪音的影響。但是另外乙個方面,隱含主題相對於詞而言粒度較粗,對於具體實體 如人名 地名 機構名和產品名 的標籤沒有辦法做到很好地區分,因此對這些細粒度標籤推薦效果較差 典型的聚類演算法 層次聚類 hierarchical...

常用關鍵詞

保留字是指在程式語言中,暫時還沒有賦予含義,不過也不能用於定義變數名和類名,因為後續再公升級過程中可能會用到的單詞。final 繼承的出現提高了 的復用性,並方便開發。但隨之也有問題,有些類在描述完之後,不想被繼承,或者有些類中的部分方法功能是固定的,不想讓子類重寫。final修類類不可以被繼承,但...