運算符
特殊符號
#; 引入模塊@; 導出模塊->; match arm 與 if/else 分支(如cond -> body):; match 表達式(如x: { ... }){ } (true); 無限循環(後綴式,舊式寫法);前置式!! { }/true { }同義,為新式預設(no fmt輸出)<-; 範圍遍歷(如i <- [a..b]: { })..; 父類 / 範圍運算子(如[a..b)).; 類自身(⚠️ 在區間上界中,應使用self.method而非.method,避免...與 return 運算子歧義)?; option 類型前綴(如?i64、?str)(cond) { }; 條件循環(前置式,新式預設,等同後綴式{ } (cond))N * { }; 計數循環(前置式,新式預設,等同後綴式{ } * N,N ≤ 0 跳過)!; 假(false);也是「不執行」循環前綴(! { }永不執行)!!; 真(true);也是「恆執行」循環前綴(!! { }無限循環){ } (); 不執行(空括號代表 false;後綴式,舊式寫法);前置式! { }/false { }/() { }同義,為新式預設*; 中斷 替代break(規劃中,暫不替代)**; 跳過本輪 替代continue(規劃中,暫不替代)...; 返回語句,终止函数 替代return(規劃中,暫不替代)run; 啟動異步線程awy; 等待異步線程完成
算術運算符
+; 加法-; 減法(也可用於字串拼接)*; 乘法(也可用於字串重複)/; 除法
比較運算符
==; 等於(str有真正的字串相等比較,多字元合法)!=; 不等於(同上)<; 小於>; 大於<=; 小於等於>=; 大於等於
關係運算子(
< > <= >=)沒有字串字典序語意str 只有相等比較(== / !=);對字串做關係運算過去會靜默回傳 false,現在是編譯錯誤。
- 合法:單字元字串字面量
'a',隱式視為char(碼點),可與另一個單字元字面量或char("a")比較。數值型別照常。 - 錯誤:多字元字串 —— 多字元字面量
'ab'、str變數、回傳str的呼叫。 - 需要字典序比較時用
str.compare(b)(回傳 -1 / 0 / 1)。
'a' <= 'z' ; true — 單字元字串隱式 char
ch >= 'a' ; ch 為 char,OK
'a' > "b" ; 單字元字串 vs char,OK
'abc' < 'abd' ; 編譯錯誤:多字元字串
s1 < s2 ; 編譯錯誤:str 變數
s1.compare(s2) > 0 ; 正確寫法
邏輯運算符
&&; 邏輯與||; 邏輯或(也可用於 match 分支組合,如nil || err -> body)!; 邏輯非
位運算符
&; 按位與|; 按位或^; 按位異或~; 按位取反<<; 左移>>; 右移
賦值運算符
=; 賦值+=; 加賦值-=; 減賦值*=; 乘賦值/=; 除賦值%=; 模賦值&=; 位與賦值|=; 位或賦值^=; 位異或賦值<<=; 左移賦值>>=; 右移賦值
其他
?; 三元運算符(如c = flag ? 1 : 2)as; FFI 指標型別轉換(如y = x as *byte)..; 切片範圍(如arr[1..3]、arr[1..]、arr[..3])