Solidity
初學者問題:solidity 結構中的變數是狀態變數還是局部變數?
我是剛接觸solidity的新手,只是有一個關於結構的快速問題:
struct structName { uint256 structNumber; string structString; }
首先,我已經看到 structNumber 和 StructName 被稱為“成員”,我將它們稱為變數是錯誤的嗎?
其次,如果它們確實是變數,它們是局部變數還是狀態變數?
提前致謝。
struct
s 使您能夠創建具有多個屬性的數據類型。struct
s 基本上是變數的集合,可以是不同的數據類型。從這個意義上說,您可以將結構想像為由您(開發人員)定義的自定義數據類型中的一組相似變數。在 a 中定義的變數
struct
也稱為各自的成員struct
。如果你
struct
在你的合約中定義你的,它被視為狀態變數,但你也可以在你的合約之外聲明它並在另一個合約中導入它(參見這裡的例子)。您也可以struct
在函式中使用您的storage
關鍵字,使用關鍵字直接訪問狀態,而memory
關鍵字會將其複製到記憶體中。// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract StructExample { // state struct Person { uint256 age; string name; } // accesses state variable directly function storageDemo() public { Person storage person; // your code here } // copies state variable to memory function memoryDemo() public { Person memory person; // your code here } }