
- Dart程式設計教程
- Dart程式設計 - 首頁
- Dart程式設計 - 概述
- Dart程式設計 - 環境搭建
- Dart程式設計 - 語法
- Dart程式設計 - 資料型別
- Dart程式設計 - 變數
- Dart程式設計 - 運算子
- Dart程式設計 - 迴圈
- Dart程式設計 - 決策
- Dart程式設計 - 數字
- Dart程式設計 - 字串
- Dart程式設計 - 布林值
- Dart程式設計 - 列表
- Dart程式設計 - 列表
- Dart程式設計 - 對映
- Dart程式設計 - 符號
- Dart程式設計 - Rune (字元單元)
- Dart程式設計 - 列舉
- Dart程式設計 - 函式
- Dart程式設計 - 介面
- Dart程式設計 - 類
- Dart程式設計 - 物件
- Dart程式設計 - 集合
- Dart程式設計 - 泛型
- Dart程式設計 - 包
- Dart程式設計 - 異常處理
- Dart程式設計 - 除錯
- Dart程式設計 - Typedef (型別定義)
- Dart程式設計 - 庫
- Dart程式設計 - 非同步操作
- Dart程式設計 - 併發
- Dart程式設計 - 單元測試
- Dart程式設計 - HTML DOM
- Dart程式設計實用資源
- Dart程式設計 - 快速指南
- Dart程式設計 - 資源
- Dart程式設計 - 討論
Dart程式設計 - 運算子
表示式是一種特殊的語句,它會計算出一個值。每個表示式都由以下部分組成:
運算元 - 代表資料
運算子 - 定義如何處理運算元以產生一個值。
考慮以下表達式:“2 + 3”。在這個表示式中,2 和 3 是運算元,符號“+”(加號)是運算子。
本章將討論Dart中可用的運算子。
- 算術運算子
- 相等性和關係運算符
- 型別測試運算子
- 位運算子
- 賦值運算子
- 邏輯運算子
算術運算子
下表顯示了Dart支援的算術運算子。
序號 | 運算子及含義 |
---|---|
1 | +
加 |
2 | 減
減法 |
3 | -expr
一元減號,也稱為負號(反轉表示式的符號) |
4 | *
乘 |
5 | /
除 |
6 | ~/
整數除法,返回整數結果 |
7 | %
獲取整數除法的餘數(模運算) |
8 | ++
自增 |
9 | --
自減 |
相等性和關係運算符
關係運算符測試或定義兩種實體之間的關係型別。關係運算符返回布林值,即true/false。
假設A的值為10,B的值為20。
運算子 | 描述 | 示例 |
---|---|---|
> | 大於 | (A > B) 為False |
< | 小於 | (A < B) 為True |
>= | 大於或等於 | (A >= B) 為False |
<= | 小於或等於 | (A <= B) 為True |
== | 等於 | (A==B) 為False |
!= | 不等於 | (A!=B) 為True |
型別測試運算子
這些運算子方便在執行時檢查型別。
運算子 | 含義 |
---|---|
is | 如果物件具有指定的型別,則為True |
is! | 如果物件不具有指定的型別,則為True |
位運算子
下表列出了Dart中可用的位運算子及其作用:
運算子 | 描述 | 示例 |
---|---|---|
按位與 | a & b | 對於兩個運算元的對應位都為1的每個位位置,返回1。 |
按位或 | a | b | 對於兩個運算元的對應位中至少有一個為1的每個位位置,返回1。 |
按位異或 | a ^ b | 對於兩個運算元的對應位中只有一個為1的每個位位置,返回1。 |
按位非 | ~ a | 反轉其運算元的位。 |
左移 | a << b | 將a的二進位制表示向左移動b(<32)位,從右邊移入零。 |
帶符號右移 | a >> b | 將a的二進位制表示向右移動b(<32)位,丟棄移出的位。 |
賦值運算子
下表列出了Dart中可用的賦值運算子。
序號 | 運算子及描述 |
---|---|
1 | =(簡單賦值)
將右側運算元的值賦給左側運算元 例:C = A + B 將A + B的值賦給C |
2 | ??=
僅當變數為null時才賦值 |
3 | +=(加法賦值)
它將右側運算元加到左側運算元,並將結果賦給左側運算元。 例:C += A 等效於 C = C + A |
4 | -=(減法賦值)
它從左側運算元減去右側運算元,並將結果賦給左側運算元。 例:C -= A 等效於 C = C – A |
5 | *=(乘法賦值)
它將右側運算元乘以左側運算元,並將結果賦給左側運算元。 例:C *= A 等效於 C = C * A |
6 | /=(除法賦值)
它將左側運算元除以右側運算元,並將結果賦給左側運算元。 |
注意 - 位運算子也適用相同的邏輯,因此它們將變為<<=, >>=, &=, |= 和 ^=。
邏輯運算子
邏輯運算子用於組合兩個或多個條件。邏輯運算子返回布林值。假設變數A的值為10,B的值為20。
運算子 | 描述 | 示例 |
---|---|---|
&& | 與 - 只有當所有指定的表示式都返回true時,運算子才返回true |
(A > 10 && B > 10) 為False。 |
|| | 或 - 如果至少一個指定的表示式返回true,則運算子返回true |
(A > 10 || B > 10) 為True。 |
! | 非 - 運算子返回表示式的結果的反值。例如:!(7>5) 返回false |
!(A > 10) 為True。 |
條件表示式
Dart有兩個運算子,允許你評估可能需要ifelse語句的表示式:
condition ? expr1 : expr2
如果condition為true,則表示式計算expr1(並返回其值);否則,它計算並返回expr2的值。
expr1 ?? expr2
如果expr1非null,則返回其值;否則,計算並返回expr2的值。
示例
以下示例顯示如何在Dart中使用條件表示式:
void main() { var a = 10; var res = a > 12 ? "value greater than 10":"value lesser than or equal to 10"; print(res); }
它將產生以下輸出:
value lesser than or equal to 10
示例
讓我們來看另一個例子:
void main() { var a = null; var b = 12; var res = a ?? b; print(res); }
它將產生以下輸出:
12