状態変数
CoddyのSolidityジャーニー「基礎」セクションの一部。レッスン 26/53。
コントラクト内で宣言され、すべての関数の外側にある変数は状態変数です。そのコントラクト内の関数はその変数を共有します。関数内で宣言されたローカル変数は、その呼び出しに属します。デプロイされたブロックチェーン上では、成功した状態変更がトランザクション間で保持されることがあります。
コントラクトスコープでこれを宣言します:
uint256 count;提供されている main 関数内で使用します:
count = 6;
console.log(count);count はコントラクトスコープで宣言され、main がそれに値を代入します。この演習ランナーはテストごとに初期化されたゼロ状態のストレージで開始するため、あるテストが別のテストを引き継ぐことを期待しないでください。このセクションでは、宣言時の初期化子やコンストラクターではなく、main 内の代入によって状態を初期化します。
状態変数は、関数本体の外側にあるコントラクトスコープで宣言されます。
チャレンジ
簡単状態変数 visits を宣言します。main では、指定された start を代入し、visits を 1 増加させる内部ヘルパー addVisit を呼び出してから、visits を出力します。
テストは次の順序で main に引数を渡します: uint256 start。各テストは新しいコントラクト状態から開始します。
要求された出力には console.log を使用します。要求された値のみを、1 行に 1 つずつ出力し、タスクで指定されていない限り余分なラベルは付けません。
自分で試してみよう
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 start) external {
// ここに解答を書いてください。
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Solidityプレイグラウンド