Tcl - operatory
Operator to symbol, który mówi kompilatorowi, aby wykonał określone operacje matematyczne lub logiczne. Język Tcl jest bogaty we wbudowane operatory i zapewnia następujące typy operatorów -
- Operatory arytmetyczne
 - Operatorzy relacyjni
 - Operatory logiczne
 - Operatory bitowe
 - Operator trójskładnikowy
 
                W tym rozdziale wyjaśnimy kolejno operatory arytmetyczne, relacyjne, logiczne, bitowe i trójskładnikowe.
Operatory arytmetyczne
Poniższa tabela przedstawia wszystkie operatory arytmetyczne obsługiwane przez język Tcl. Załóżmy, że zmienna „A” ma 10, a zmienna „B” 20, a następnie -
Pokaż przykłady
| Operator | Opis | Przykład | 
|---|---|---|
| + | Dodaje dwa operandy | A + B da 30 | 
| - | Odejmuje drugi operand od pierwszego | A - B da -10 | 
| * | Mnoży oba operandy | A * B da 200 | 
| / | Dzieli licznik przez de-licznik | B / A da 2 | 
| % | Operator modułu i reszta po dzieleniu całkowitoliczbowym | B% A da 0 | 
Operatorzy relacyjni
Poniższa tabela przedstawia wszystkie operatory relacyjne obsługiwane przez język Tcl. Przyjmij zmiennąA posiada 10 i zmienną B mieści 20, a następnie -
Pokaż przykłady
| Operator | Opis | Przykład | 
|---|---|---|
| == | Sprawdza, czy wartości dwóch operandów są równe, czy nie, jeśli tak, warunek staje się prawdziwy. | (A == B) nie jest prawdą. | 
| ! = | Sprawdza, czy wartości dwóch operandów są równe, czy nie, jeśli wartości nie są równe, warunek staje się prawdziwy. | (A! = B) jest prawdą. | 
| > | Sprawdza, czy wartość lewego operandu jest większa niż wartość prawego operandu. Jeśli tak, warunek staje się prawdziwy. | (A> B) nie jest prawdą. | 
| < | Sprawdza, czy wartość lewego operandu jest mniejsza niż wartość prawego operandu, jeśli tak, warunek staje się prawdziwy. | (A <B) jest prawdą. | 
| > = | Sprawdza, czy wartość lewego operandu jest większa lub równa wartości prawego operandu, jeśli tak, warunek staje się prawdziwy. | (A> = B) nie jest prawdą. | 
| <= | Sprawdza, czy wartość lewego operandu jest mniejsza lub równa wartości prawego operandu, jeśli tak, warunek staje się prawdziwy. | (A <= B) jest prawdą. | 
Operatory logiczne
Poniższa tabela przedstawia wszystkie operatory logiczne obsługiwane przez język Tcl. Przyjmij zmiennąA zawiera 1 i zmienną B posiada 0, a następnie -
Pokaż przykłady
| Operator | Opis | Przykład | 
|---|---|---|
| && | Nazywany operatorem logicznym AND. Jeśli oba operandy są niezerowe, warunek staje się prawdziwy. | (A && B) jest fałszem. | 
| || | Nazywany operatorem logicznym OR. Jeśli którykolwiek z dwóch operandów jest niezerowy, warunek staje się prawdziwy. | (A || B) jest prawdą. | 
| ! | Nazywany operatorem logicznym NOT. Służy do odwracania stanu logicznego operandu. Jeśli warunek jest spełniony, operator logiczny NOT spowoduje fałsz. | ! (A && B) jest prawdą. | 
Operatory bitowe
Operator bitowy działa na bitach i wykonuje operacje bit po bicie. Tabele prawdy dla &, | i ^ są następujące -
| p | q | p & q | p | q | p ^ q | 
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 
| 0 | 1 | 0 | 1 | 1 | 
| 1 | 1 | 1 | 1 | 0 | 
| 1 | 0 | 0 | 1 | 1 | 
Załóżmy, że A = 60; i B = 13; teraz w formacie binarnym będą wyglądać następująco -
A = 0011 1100
B = 0000 1101
----------------------
A&B = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
W poniższej tabeli wymieniono operatory bitowe obsługiwane przez język Tcl. Przyjmij zmiennąA mieści 60 i zmienną B mieści 13, a następnie -
Pokaż przykłady
| Operator | Opis | Przykład | 
|---|---|---|
| & | Operator binarny AND kopiuje trochę do wyniku, jeśli istnieje w obu operandach. | (A i B) da 12, czyli 0000 1100 | 
| | | Operator binarny OR kopiuje bit, jeśli istnieje w którymkolwiek z operandów. | (A | B) da 61, czyli 0011 1101 | 
| ^ | Binarny operator XOR kopiuje bit, jeśli jest ustawiony w jednym operandzie, ale nie w obu. | (A ^ B) da 49, czyli 0011 0001 | 
| << | Binarny operator przesunięcia w lewo. Wartość lewego operandu jest przesuwana w lewo o liczbę bitów określoną przez prawy operand. | A << 2 da 240, czyli 1111 0000 | 
| >> | Binarny operator przesunięcia w prawo. Wartość lewego operandu jest przesuwana w prawo o liczbę bitów określoną przez prawy operand. | >> 2 da 15, czyli 0000 1111 | 
Operator trójskładnikowy
Pokaż przykłady
| Operator | Opis | Przykład | 
|---|---|---|
| ? : | Potrójny | Jeśli warunek jest prawdziwy? Wtedy wartość X: W przeciwnym razie wartość Y | 
Pierwszeństwo operatorów w Tcl
Pierwszeństwo operatorów określa grupowanie terminów w wyrażeniu. Wpływa to na sposób oceny wyrażenia. Niektórzy operatorzy mają wyższy priorytet niż inni; na przykład operator mnożenia ma wyższy priorytet niż operator dodawania.
For example: x = 7 + 3 * 2; tutaj x ma przypisane 13, a nie 20, ponieważ operator * ma wyższy priorytet niż +, więc najpierw jest mnożony przez 3 * 2, a następnie sumowany do 7.
Tutaj operatory o najwyższym priorytecie pojawiają się na górze tabeli, a operatory o najniższym priorytecie - na dole. W wyrażeniu najpierw zostaną ocenione operatory o wyższym priorytecie.
Pokaż przykłady
| Kategoria | Operator | Łączność | 
|---|---|---|
| Jednoargumentowe | + - | Od prawej do lewej | 
| Mnożny | * /% | Z lewej na prawą | 
| Przyłączeniowy | + - | Z lewej na prawą | 
| Zmiana | << >> | Z lewej na prawą | 
| Relacyjny | <<=>> = | Z lewej na prawą | 
| Bitowe i | & | Z lewej na prawą | 
| Bitowe XOR | ^ | Z lewej na prawą | 
| Bitowe OR | | | Z lewej na prawą | 
| Logiczne AND | && | Z lewej na prawą | 
| Logiczne LUB | || | Z lewej na prawą | 
| Potrójny | ?: | Od prawej do lewej |