条件の要求
CoddyのSolidityジャーニー「基礎」セクションの一部。レッスン 46/53。
期待される条件が false の場合に呼び出しを拒否するには、require(condition, message) を使用します。条件が成立すると、実行は続行されます。要件に失敗すると、呼び出しとその状態変更が取り消されます。その条件に依存する操作で入力を使用する前に、入力を検証してください。
この抜粋の文は、提供された main 関数内で実行されます。
uint256 quantity = 7;
require(quantity > 0, "Positive quantity required");
console.log(quantity * 3);値の seven は正の数量チェックに合格するため、計算結果として twenty-one が出力されます。quantity がゼロの場合は、代わりに呼び出しがリバートします。メッセージは失敗した要件を説明するものであり、呼び出しが成功した際には出力されません。
require は条件が真の場合は処理を続行し、偽の場合はリバートします。
チャレンジ
簡単divisor がゼロより大きいことを、わかりやすいエラーメッセージとともに要求します。次に、total を divisor で割った結果を出力します。表示される出力テストでは正の divisor が使用されますが、コードにはガードを含める必要があります。
テストは、次の順序で引数を main に渡します:uint256 total、uint256 divisor。各テストは、新しいコントラクト状態から開始します。
要求された出力には console.log を使用します。要求された値のみを、1 行に 1 つずつ出力してください。タスクで指定されていない限り、余分なラベルは付けないでください。
自分で試してみよう
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/console.sol";
contract Main {
function main(uint256 total, uint256 divisor) external view {
// ここに解答を書いてください。
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Solidityプレイグラウンド