定数
CoddyのSolidityジャーニー「基礎」セクションの一部。レッスン 29/53。
コンパイル時に固定される値には、コントラクトレベルのconstantを使用します。宣言時にその値を指定します。constantは再代入できません。固定の変換係数や、複数の関数で共有する安定したルールに便利です。
これをコントラクトスコープで宣言します。
uint256 constant HOURS_PER_DAY = 24;提供されているmain関数内で使用します。
uint256 daysCount = 3;
console.log(daysCount * HOURS_PER_DAY);HOURS_PER_DAY は 24 に固定されているため、3 日には 72 時間が含まれます。通常の状態初期化とは異なり、定数はその使用箇所にコンパイル時に埋め込まれます。定数に大文字の名前を付けるのは一般的な慣例であり、コンパイラの要件ではありません。
定数は宣言時に初期化され、再代入することはできません。
チャレンジ
簡単60 と等しい uint256 定数 MINUTES_PER_HOUR を宣言してください。その定数に hoursCount を掛けた値を出力してください。
テストは、次の順序で main に引数を渡します:uint256 hoursCount。各テストは新しいコントラクト状態から開始します。
要求された出力には console.log を使用してください。要求された値のみを、1 行に 1 つずつ出力し、タスクで指定されていない限り、追加のラベルは付けないでください。
自分で試してみよう
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 hoursCount) external view {
// ここに解答を書いてください。
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Solidityプレイグラウンド