Solidity-operators
堅牢性-オペレーター
オペレーターとは?
単純な式 4 + 5は9 に等しいとします。 ここで、4と5は*オペランド*と呼ばれ、「+」は*演算子*と呼ばれます。 Solidityは、次のタイプの演算子をサポートしています。
- 算術演算子
- 比較演算子
- 論理(またはリレーショナル)演算子
- 割り当て演算子 *条件付き(または3項)演算子
すべての演算子を1つずつ見てみましょう。
算術演算子
Solidityは次の算術演算子をサポートしています-
変数Aが10を保持し、変数Bが20を保持すると仮定します-
link:/solidity/solidity_arithmetic_operators [例を表示]
Sr.No. | Operator & Description |
---|---|
1 |
2つのオペランドを追加します 例: A + Bは30を与える |
2 |
最初のオペランドから2番目のオペランドを減算します 例: A-Bは-10を与える |
3 |
両方のオペランドを乗算します 例: *A Bは200を与える |
4 |
/(Division) 分子を分母で除算する
|
5 |
整数除算の剰余を出力します
|
6 |
整数値を1つ増やします 例: A ++は11 |
7 |
整数値を1減らします
|
比較演算子
Solidityは以下の比較演算子をサポートしています-
変数Aが10を保持し、変数Bが20を保持すると仮定します-
リンク:/solidity/solidity_comparison_operators [例を表示]
Sr.No. | Operator & Description |
---|---|
1 |
2つのオペランドの値が等しいかどうかを確認し、等しい場合は条件が真になります。 例:(A == B)は正しくありません。 |
2 |
!= (Not Equal) 2つのオペランドの値が等しいかどうかをチェックし、値が等しくない場合は条件が真になります。 例:(A!= B)は真です。 |
3 |
> (Greater than) 左のオペランドの値が右のオペランドの値よりも大きいかどうかをチェックし、そうであれば条件は真になります。 例:(A> B)は正しくありません。 |
4 |
< (Less than) 左のオペランドの値が右のオペランドの値よりも小さいかどうかを確認し、そうであれば条件は真になります。 例:(A <B)は真です。 |
5 |
>= (Greater than or Equal to) 左のオペランドの値が右のオペランドの値以上かどうかをチェックし、そうであれば条件は真になります。 例:(A> = B)は正しくありません。 |
6 |
⇐ (Less than or Equal to) 左のオペランドの値が右のオペランドの値以下かどうかをチェックし、そうであれば条件は真になります。 例:(A ⇐ B)は真です。 |
論理演算子
Solidityは次の論理演算子をサポートしています-
変数Aが10を保持し、変数Bが20を保持すると仮定します-
リンク:/solidity/solidity_logical_operators [例を表示]
Sr.No. | Operator & Description |
---|---|
1 |
&& (Logical AND) 両方のオペランドがゼロ以外の場合、条件は真になります。 例:(A && B)はtrueです。 |
2 | * |
(Logical OR)* 2つのオペランドのいずれかがゼロ以外の場合、条件は真になります。 例:(A | |
B)はtrueです。 | |
3 |
! (Logical NOT) オペランドの論理状態を反転します。 条件が真の場合、Logical NOT演算子はそれを偽にします。 例:! (A && B)は偽です。 |
ビット演算子
Solidityは、次のビット演算子をサポートしています-
変数Aが2を保持し、変数Bが3を保持すると仮定します-
link:/solidity/solidity_bitwise_operators [例を表示]
Sr.No. | Operator & Description |
---|---|
1 |
& (Bitwise AND) 整数引数の各ビットに対してブールAND演算を実行します。 例:(A&B)は2です。 |
2 | * |
(BitWise OR)* 整数引数の各ビットに対してブールOR演算を実行します。 例:(A |
B)は3です。 |
3 |
^ (Bitwise XOR) 整数引数の各ビットに対してブール排他的OR演算を実行します。 排他的ORは、オペランド1が真であるか、オペランド2が真であり、両方ではないことを意味します。 例:(A ^ B)は1です。 |
4 |
~ (Bitwise Not) これは単項演算子であり、オペランドのすべてのビットを反転することにより動作します。 例:(〜B)は-4です。 |
5 |
<< (Left Shift) 第1オペランドのすべてのビットを、第2オペランドで指定された桁数だけ左に移動します。 新しいビットはゼロで埋められます。 値を1ポジション左にシフトすることは、2を乗算することと同等です。2ポジションをシフトすることは、4を乗算することと同等です。 例:(A << 1)は4です。 |
6 |
>> (Right Shift) バイナリ右シフト演算子。 左のオペランドの値は、右のオペランドで指定されたビット数だけ右に移動します。 例:(A >> 1)は1です。 |
7 |
>>> (Right shift with Zero) この演算子は、>>演算子と同じですが、左にシフトインされるビットが常にゼロである点が異なります。 例:(A >>> 1)は1です。 |
割り当て演算子
Solidityは次の代入演算子をサポートしています-
link:/solidity/solidity_assignment_operators [例を表示]
Sr.No. | Operator & Description |
---|---|
1 |
= (Simple Assignment ) 右側のオペランドから左側のオペランドに値を割り当てます
|
2 |
右オペランドを左オペランドに追加し、結果を左オペランドに割り当てます。
|
3 |
左のオペランドから右のオペランドを減算し、結果を左のオペランドに割り当てます。
|
4 |
右オペランドと左オペランドを乗算し、結果を左オペランドに割り当てます。 例: *C = AはC = C *Aと同等 |
5 |
/= (Divide and Assignment) 左のオペランドを右のオペランドで除算し、結果を左のオペランドに割り当てます。
|
6 |
2つのオペランドを使用してモジュラスを取得し、結果を左のオペランドに割り当てます。
|
注-ビット単位演算子にも同じロジックが適用されるため、⇐=、>> =、>> =、&=、| =、^ =のようになります。
条件演算子(? :)
条件演算子は、最初に式の真または偽の値を評価してから、評価の結果に応じて2つの指定されたステートメントのいずれかを実行します。
link:/solidity/solidity_conditional_operators [例を表示]
Sr.No. | Operator and Description |
---|---|
1 |
? : (Conditional ) 条件が真の場合 次に値X:そうでなければ値Y |