Solidność - operatorzy
Co to jest operator?
Weźmy proste wyrażenie 4 + 5 is equal to 9. Tutaj nazywa się 4 i 5operands a „+” nazywa się operator. Solidity obsługuje następujące typy operatorów.
- Operatory arytmetyczne
- Operatory porównania
- Operatory logiczne (lub relacyjne)
- Operatory przypisania
- Operatory warunkowe (lub trójskładnikowe)
Przyjrzyjmy się kolejno wszystkim operatorom.
Operatory arytmetyczne
Solidność obsługuje następujące operatory arytmetyczne -
Załóżmy, że zmienna A zawiera 10, a zmienna B 20, a następnie -
Pokaż przykład
Sr.No. | Operator i opis |
---|---|
1 | + (Addition) Dodaje dwa operandy Ex: A + B da 30 |
2 | - (Subtraction) Odejmuje drugi operand od pierwszego Ex: A - B da -10 |
3 | * (Multiplication) Pomnóż oba operandy Ex: A * B da 200 |
4 | / (Division) Podziel licznik przez mianownik Ex: B / A da 2 |
5 | % (Modulus) Wyprowadza resztę z dzielenia liczb całkowitych Ex: B% A da 0 |
6 | ++ (Increment) Zwiększa wartość całkowitą o jeden Ex: A ++ da 11 |
7 | -- (Decrement) Zmniejsza wartość całkowitą o jeden Ex: A-- da 9 |
Operatory porównania
Solidity obsługuje następujące operatory porównania -
Załóżmy, że zmienna A zawiera 10, a zmienna B 20, a następnie -
Pokaż przykład
Sr.No. | Operator i opis |
---|---|
1 | = = (Equal) Sprawdza, czy wartości dwóch operandów są równe, czy nie, jeśli tak, warunek staje się prawdziwy. Ex: (A == B) nie jest prawdą. |
2 | != (Not Equal) Sprawdza, czy wartości dwóch operandów są równe, czy nie, jeśli wartości nie są równe, wtedy warunek staje się prawdziwy. Ex: (A! = B) jest prawdą. |
3 | > (Greater than) Sprawdza, czy wartość lewego operandu jest większa niż wartość prawego operandu. Jeśli tak, warunek staje się prawdziwy. Ex: (A> B) nie jest prawdą. |
4 | < (Less than) Sprawdza, czy wartość lewego operandu jest mniejsza niż wartość prawego operandu. Jeśli tak, warunek staje się prawdziwy. Ex: (A <B) jest prawdą. |
5 | >= (Greater than or Equal to) Sprawdza, czy wartość lewego operandu jest większa lub równa wartości prawego operandu. Jeśli tak, warunek staje się prawdziwy. Ex: (A> = B) nie jest prawdą. |
6 | <= (Less than or Equal to) Sprawdza, czy wartość lewego operandu jest mniejsza lub równa wartości prawego operandu. Jeśli tak, warunek staje się prawdziwy. Ex: (A <= B) jest prawdą. |
Operatory logiczne
Solidity obsługuje następujące operatory logiczne -
Załóżmy, że zmienna A zawiera 10, a zmienna B 20, a następnie -
Pokaż przykład
Sr.No. | Operator i opis |
---|---|
1 | && (Logical AND) Jeśli oba operandy są niezerowe, warunek staje się prawdziwy. Ex: (A && B) jest prawdą. |
2 | || (Logical OR) Jeśli którykolwiek z dwóch operandów jest niezerowy, warunek staje się prawdziwy. Ex: (A || B) jest prawdą. |
3 | ! (Logical NOT) Odwraca stan logiczny swojego operandu. Jeśli warunek jest prawdziwy, operator logiczny NIE spowoduje, że będzie fałszywy. Ex:! (A && B) jest fałszem. |
Operatory bitowe
Solidity obsługuje następujące operatory bitowe -
Załóżmy, że zmienna A zawiera 2, a zmienna B 3, a następnie -
Pokaż przykład
Sr.No. | Operator i opis |
---|---|
1 | & (Bitwise AND) Wykonuje operację logiczną AND na każdym bicie argumentów całkowitych. Ex: (A i B) wynosi 2. |
2 | | (BitWise OR) Wykonuje operację logiczną LUB na każdym bicie argumentów całkowitych. Ex: (A | B) wynosi 3. |
3 | ^ (Bitwise XOR) Wykonuje logiczną operację OR na wyłączność na każdym bicie argumentów całkowitych. Wyłączne OR oznacza, że albo operand pierwszy jest prawdziwy, albo operand drugi jest prawdziwy, ale nie oba. Ex: (A ^ B) wynosi 1. |
4 | ~ (Bitwise Not) Jest operatorem jednoargumentowym i działa poprzez odwrócenie wszystkich bitów w operandzie. Ex: (~ B) wynosi -4. |
5 | << (Left Shift) Przenosi wszystkie bity w pierwszym operandzie w lewo o liczbę miejsc określoną w drugim operandzie. Nowe bity są wypełnione zerami. Przesunięcie wartości w lewo o jedną pozycję jest równoznaczne z pomnożeniem jej przez 2, przesunięcie o dwie pozycje jest równoważne z pomnożeniem przez 4 i tak dalej. Ex: (A << 1) to 4. |
6 | >> (Right Shift) Binarny operator przesunięcia w prawo. Wartość lewego operandu jest przesuwana w prawo o liczbę bitów określoną przez prawy operand. Ex: (A >> 1) wynosi 1. |
7 | >>> (Right shift with Zero) Ten operator jest podobny do operatora >>, z tą różnicą, że bity przesunięte po lewej stronie są zawsze równe zero. Ex: (A >>> 1) wynosi 1. |
Operatory przypisania
Solidity obsługuje następujące operatory przypisania -
Pokaż przykład
Sr.No. | Operator i opis |
---|---|
1 | = (Simple Assignment ) Przypisuje wartości z prawego operandu do lewego operandu Ex: C = A + B przypisze wartość A + B do C. |
2 | += (Add and Assignment) Dodaje prawy operand do lewego operandu i przypisuje wynik do lewego operandu. Ex: C + = A jest równoważne C = C + A |
3 | −= (Subtract and Assignment) Odejmuje prawy operand od lewego operandu i przypisuje wynik do lewego operandu. Ex: C - = A jest równoważne C = C - A |
4 | *= (Multiply and Assignment) Mnoży prawy operand przez lewy operand i przypisuje wynik lewemu operandowi. Ex: C * = A jest równoważne C = C * A |
5 | /= (Divide and Assignment) Dzieli lewy operand z prawym operandem i przypisuje wynik lewemu operandowi. Ex: C / = A jest równoważne C = C / A |
6 | %= (Modules and Assignment) Pobiera moduł używając dwóch operandów i przypisuje wynik do lewego operandu. Ex: C% = A jest równoważne C = C% A |
Note - Ta sama logika dotyczy operatorów bitowych, więc będą wyglądać jak << =, >> =, >> =, & =, | = i ^ =.
Operator warunkowy (? :)
Operator warunkowy najpierw ocenia wyrażenie pod kątem wartości prawda lub fałsz, a następnie wykonuje jedną z dwóch podanych instrukcji w zależności od wyniku oceny.
Pokaż przykład
Sr.No. | Operator i opis |
---|---|
1 | ? : (Conditional ) Jeśli warunek jest prawdziwy? Wtedy wartość X: W przeciwnym razie wartość Y |