堅牢性-オペレーター
演算子とは何ですか?
簡単な表現をしましょう 4 + 5 is equal to 9。ここで4と5は呼ばれますoperands '+'は operator。Solidityは、次のタイプの演算子をサポートしています。
- 算術演算子
- 比較演算子
- 論理(または関係)演算子
- 代入演算子
- 条件付き(または三項)演算子
すべての演算子を1つずつ見ていきましょう。
算術演算子
Solidityは次の算術演算子をサポートします-
変数Aが10を保持し、変数Bが20を保持すると仮定すると、-
例を表示
シニア番号 | オペレーターと説明 |
---|---|
1 | + (Addition) 2つのオペランドを追加します Ex: A + Bは30を与えます |
2 | - (Subtraction) 最初のオペランドから2番目のオペランドを減算します Ex: A-Bは-10を与えます |
3 | * (Multiplication) 両方のオペランドを乗算します Ex: A * Bは200を与えます |
4 | / (Division) 分子を分母で割ります Ex: B / Aは2を与えます |
5 | % (Modulus) 整数除算の余りを出力します Ex: B%Aは0を与えます |
6 | ++ (Increment) 整数値を1つ増やします Ex: A ++は11を与えます |
7 | -- (Decrement) 整数値を1つ減らします Ex: A--は9を与えます |
比較演算子
Solidityは、次の比較演算子をサポートしています-
変数Aが10を保持し、変数Bが20を保持すると仮定すると、-
例を表示
シニア番号 | オペレーターと説明 |
---|---|
1 | = = (Equal) 2つのオペランドの値が等しいかどうかをチェックし、等しい場合は条件が真になります。 Ex: (A == B)は真ではありません。 |
2 | != (Not Equal) 2つのオペランドの値が等しいかどうかをチェックし、値が等しくない場合は、条件が真になります。 Ex: (A!= B)は真です。 |
3 | > (Greater than) 左側のオペランドの値が右側のオペランドの値より大きいかどうかを確認します。大きい場合は、条件が真になります。 Ex: (A> B)は正しくありません。 |
4 | < (Less than) 左側のオペランドの値が右側のオペランドの値よりも小さいかどうかを確認し、小さい場合は条件が真になります。 Ex: (A <B)は真です。 |
5 | >= (Greater than or Equal to) 左のオペランドの値が右のオペランドの値以上であるかどうかをチェックし、そうである場合は、条件が真になります。 Ex: (A> = B)は正しくありません。 |
6 | <= (Less than or Equal to) 左のオペランドの値が右のオペランドの値以下であるかどうかをチェックし、そうである場合は、条件が真になります。 Ex: (A <= B)は真です。 |
論理演算子
Solidityは次の論理演算子をサポートします-
変数Aが10を保持し、変数Bが20を保持すると仮定すると、-
例を表示
シニア番号 | オペレーターと説明 |
---|---|
1 | && (Logical AND) 両方のオペランドがゼロ以外の場合、条件は真になります。 Ex: (A && B)は本当です。 |
2 | || (Logical OR) 2つのオペランドのいずれかがゼロ以外の場合、条件は真になります。 Ex: (A || B)は真です。 |
3 | ! (Logical NOT) オペランドの論理状態を逆にします。条件がtrueの場合、LogicalNOT演算子はそれをfalseにします。 Ex:!(A && B)は誤りです。 |
ビット演算子
Solidityは、次のビット演算子をサポートしています-
変数Aが2を保持し、変数Bが3を保持すると仮定すると、-
例を表示
シニア番号 | オペレーターと説明 |
---|---|
1 | & (Bitwise AND) 整数引数の各ビットに対してブールAND演算を実行します。 Ex: (A&B)は2です。 |
2 | | (BitWise OR) 整数引数の各ビットに対してブールOR演算を実行します。 Ex: (A | B)は3です。 |
3 | ^ (Bitwise XOR) 整数引数の各ビットに対してブール排他的論理和演算を実行します。排他的論理和は、オペランド1が真であるかオペランド2が真であるが、両方ではないことを意味します。 Ex: (A ^ B)は1です。 |
4 | ~ (Bitwise Not) これは単項演算子であり、オペランドのすべてのビットを逆にすることによって動作します。 Ex: (〜B)は-4です。 |
5 | << (Left Shift) 第1オペランドのすべてのビットを、第2オペランドで指定された桁数だけ左に移動します。新しいビットはゼロで埋められます。値を1つ左にシフトすることは、値に2を掛けることと同じです。2つの位置をシフトすることは、4を掛けることと同じです。 Ex: (A << 1)は4です。 |
6 | >> (Right Shift) バイナリ右シフト演算子。左のオペランドの値は、右のオペランドで指定されたビット数だけ右に移動します。 Ex: (A >> 1)は1です。 |
7 | >>> (Right shift with Zero) この演算子は、左側にシフトインされたビットが常にゼロであることを除いて、>>演算子と同じです。 Ex: (A >>> 1)は1です。 |
代入演算子
Solidityは次の代入演算子をサポートしています-
例を表示
シニア番号 | オペレーターと説明 |
---|---|
1 | = (Simple Assignment ) 右側のオペランドから左側のオペランドに値を割り当てます Ex: C = A + Bは、A + Bの値をCに割り当てます |
2 | += (Add and Assignment) 右のオペランドを左のオペランドに追加し、結果を左のオペランドに割り当てます。 Ex: C + = AはC = C + Aと同等です |
3 | −= (Subtract and Assignment) 左のオペランドから右のオペランドを減算し、その結果を左のオペランドに割り当てます。 Ex: C- = AはC = C-Aと同等です |
4 | *= (Multiply and Assignment) 右のオペランドと左のオペランドを乗算し、その結果を左のオペランドに割り当てます。 Ex: C * = AはC = C * Aと同等です |
5 | /= (Divide and Assignment) 左のオペランドを右のオペランドで除算し、その結果を左のオペランドに割り当てます。 Ex: C / = AはC = C / Aと同等です |
6 | %= (Modules and Assignment) 2つのオペランドを使用してモジュラスを取り、その結果を左側のオペランドに割り当てます。 Ex: C%= AはC = C%Aと同等です |
Note −同じ論理がビット演算子に適用されるため、<< =、>> =、>> =、&=、| =、および^ =のようになります。
条件付き演算子(?:)
条件演算子は、最初に式の真または偽の値を評価し、次に評価の結果に応じて、指定された2つのステートメントのいずれかを実行します。
例を表示
シニア番号 | 演算子と説明 |
---|---|
1 | ? : (Conditional ) 条件が真の場合?次に値X:それ以外の場合は値Y |