- Solidity 教程
- Solidity - 首頁
- Solidity - 概述
- Solidity - 環境搭建
- Solidity - 基本語法
- Solidity - 第一個應用
- Solidity - 註釋
- Solidity - 資料型別
- Solidity - 變數
- Solidity - 變數作用域
- Solidity - 運算子
- Solidity - 迴圈
- Solidity - 決策
- Solidity - 字串
- Solidity - 陣列
- Solidity - 列舉
- Solidity - 結構體
- Solidity - 對映
- Solidity - 型別轉換
- Solidity - 以太幣單位
- Solidity - 特殊變數
- Solidity - 樣式指南
- Solidity 函式
- Solidity - 函式
- Solidity - 函式修飾符
- Solidity - View 函式
- Solidity - Pure 函式
- Solidity - 回退函式
- 函式過載
- 數學函式
- 加密函式
- Solidity 常用模式
- Solidity - 提款模式
- Solidity - 受限訪問
- Solidity 高階
- Solidity - 合約
- Solidity - 繼承
- Solidity - 建構函式
- Solidity - 抽象合約
- Solidity - 介面
- Solidity - 庫
- Solidity - 彙編
- Solidity - 事件
- Solidity - 錯誤處理
- Solidity 有用資源
- Solidity - 快速指南
- Solidity - 有用資源
- Solidity - 討論
Solidity - 運算子
什麼是運算子?
讓我們來看一個簡單的表示式4 + 5 等於 9。這裡 4 和 5 稱為運算元,而 '+' 稱為運算子。Solidity 支援以下型別的運算子。
- 算術運算子
- 比較運算子
- 邏輯(或關係)運算子
- 賦值運算子
- 條件(或三元)運算子
讓我們逐一看看所有運算子。
算術運算子
Solidity 支援以下算術運算子:
假設變數 A 為 10,變數 B 為 20,則:
| 序號 | 運算子 & 描述 |
|---|---|
| 1 | + (加法) 將兩個運算元相加 例:A + B 將得到 30 |
| 2 | - (減法) 從第一個運算元中減去第二個運算元 例:A - B 將得到 -10 |
| 3 | * (乘法) 將兩個運算元相乘 例:A * B 將得到 200 |
| 4 | / (除法) 將分子除以分母 例:B / A 將得到 2 |
| 5 | % (取模) 輸出整數除法的餘數 例:B % A 將得到 0 |
| 6 | ++ (自增) 將整數值增加一 例:A++ 將得到 11 |
| 7 | -- (自減) 將整數值減少一 例:A-- 將得到 9 |
比較運算子
Solidity 支援以下比較運算子:
假設變數 A 為 10,變數 B 為 20,則:
| 序號 | 運算子 & 描述 |
|---|---|
| 1 |
== (等於) 檢查兩個運算元的值是否相等,如果相等,則條件為真。 例:(A == B) 為假。 |
| 2 |
!= (不等於) 檢查兩個運算元的值是否相等,如果不相等,則條件為真。 例:(A != B) 為真。 |
| 3 |
> (大於) 檢查左側運算元的值是否大於右側運算元的值,如果大於,則條件為真。 例:(A > B) 為假。 |
| 4 |
< (小於) 檢查左側運算元的值是否小於右側運算元的值,如果小於,則條件為真。 例:(A < B) 為真。 |
| 5 |
>= (大於等於) 檢查左側運算元的值是否大於或等於右側運算元的值,如果大於或等於,則條件為真。 例:(A >= B) 為假。 |
| 6 |
<= (小於等於) 檢查左側運算元的值是否小於或等於右側運算元的值,如果小於或等於,則條件為真。 例:(A <= B) 為真。 |
邏輯運算子
Solidity 支援以下邏輯運算子:
假設變數 A 為 10,變數 B 為 20,則:
| 序號 | 運算子 & 描述 |
|---|---|
| 1 | && (邏輯與) 如果兩個運算元都不為零,則條件為真。 例:(A && B) 為真。 |
| 2 | || (邏輯或) 如果兩個運算元中任何一個不為零,則條件為真。 例:(A || B) 為真。 |
| 3 | ! (邏輯非) 反轉其運算元的邏輯狀態。如果條件為真,則邏輯非運算子將使其為假。 例:! (A && B) 為假。 |
位運算子
Solidity 支援以下位運算子:
假設變數 A 為 2,變數 B 為 3,則:
| 序號 | 運算子 & 描述 |
|---|---|
| 1 | & (按位與) 它對每個整數引數的每一位執行布林與運算。 例:(A & B) 為 2。 |
| 2 | | (按位或) 它對每個整數引數的每一位執行布林或運算。 例:(A | B) 為 3。 |
| 3 | ^ (按位異或) 它對每個整數引數的每一位執行布林異或運算。異或意味著運算元一或運算元二為真,但兩者不同時為真。 例:(A ^ B) 為 1。 |
| 4 | ~ (按位非) 它是一個一元運算子,透過反轉運算元中的所有位來操作。 例:(~B) 為 -4。 |
| 5 | << (左移) 它將第一個運算元中的所有位向左移動第二個運算元中指定的位數。新的位用零填充。將值左移一位相當於將其乘以 2,左移兩位相當於將其乘以 4,依此類推。 例:(A << 1) 為 4。 |
| 6 | >> (右移) 二進位制右移運算子。左側運算元的值向右移動右側運算元指定的位數。 例:(A >> 1) 為 1。 |
| 7 | >>> (帶零的右移) 此運算子類似於 >> 運算子,只是左側移入的位始終為零。 例:(A >>> 1) 為 1。 |
賦值運算子
Solidity 支援以下賦值運算子:
| 序號 | 運算子 & 描述 |
|---|---|
| 1 | = (簡單賦值) 將右側運算元的值賦給左側運算元 例:C = A + B 將 A + B 的值賦給 C |
| 2 | += (加法賦值) 它將右側運算元新增到左側運算元,並將結果賦給左側運算元。 例:C += A 等效於 C = C + A |
| 3 | -= (減法賦值) 它從左側運算元中減去右側運算元,並將結果賦給左側運算元。 例:C -= A 等效於 C = C - A |
| 4 | *= (乘法賦值) 它將右側運算元與左側運算元相乘,並將結果賦給左側運算元。 例:C *= A 等效於 C = C * A |
| 5 | /= (除法賦值) 它將左側運算元除以右側運算元,並將結果賦給左側運算元。 例:C /= A 等效於 C = C / A |
| 6 | %= (取模賦值) 它使用兩個運算元進行取模運算,並將結果賦給左側運算元。 例:C %= A 等效於 C = C % A |
注意 - 位運算子也適用相同的邏輯,因此它們將變成 <<=、>>=、>>=、&=、|= 和 ^=。
條件運算子 (? :)
條件運算子首先評估表示式的真假值,然後根據評估結果執行兩個給定語句中的一個。
| 序號 | 運算子和描述 |
|---|---|
| 1 | ? : (條件) 如果條件為真?則值為 X:否則值為 Y |