工具用的順手嗎?
你的回饋能幫助我們做得更好
查詢Go運算子優先順序與結合性,理清表示式求值順序。
此表是收錄語法的參考子集,不執行或驗證示例。數字是本站分組,不能替代所用語言版本的完整語法、型別和求值規則;例子保留原始程式碼與字面值。第8、9組的賦值、增減和通道傳送是語句,不是表示式優先順序。 參考來源
x.y主表示式左結合访问结构体字段、包成员或方法。主表达式优先级最高。
user.Namex[i]主表示式左結合访问数组、切片、字符串或 map 的元素。
items[i]x[i:j]主表示式左結合从数组、切片或字符串中取得半开区间。
name[1:4]x.(T)主表示式左結合从接口值中取出动态类型为 T 的值。
value.(string)f()主表示式左結合调用函数、方法或可调用表达式。
fmt.Println(name)+x一元運算右結合返回数值本身,通常用于强调符号。
+count-x一元運算右結合返回数值的相反数。
-delta!一元運算右結合对布尔值取反。
!ok^x一元運算右結合对整数逐位取反。
^mask*p一元運算右結合读取指针指向的值。
*ptr&x一元運算右結合取得变量、字段或可寻址值的指针。
&value<-ch一元運算右結合从 channel 接收一个值,可用于表达式。
value := <-ch*乘除位移左結合两个数值相乘。
width * height/乘除位移左結合左操作数除以右操作数;整数除法会截断小数部分。
total / count%乘除位移左結合返回整数除法的余数。
index % 2<<乘除位移左結合将整数按位左移指定数量。
1 << bit>>乘除位移左結合将整数按位右移指定数量。
flags >> 1&乘除位移左結合两个整数逐位执行与运算。
flags & enabled&^乘除位移左結合清除左操作数中右操作数为 1 的位。
flags &^ disabled+加減按位左結合数值相加;字符串相加时执行拼接。
first + last-加減按位左結合左操作数减去右操作数。
end - start|加減按位左結合两个整数逐位执行或运算。
flags | selected^加減按位左結合两个整数逐位执行异或运算。
flags ^ mask==比較運算左結合判断两个可比较值是否相等。
status == "ok"!=比較運算左結合判断两个可比较值是否不相等。
err != nil<比較運算左結合比较左操作数是否小于右操作数。
age < 18<=比較運算左結合比较左操作数是否小于或等于右操作数。
score <= 100>比較運算左結合比较左操作数是否大于右操作数。
price > limit>=比較運算左結合比较左操作数是否大于或等于右操作数。
count >= min&&邏輯運算左結合左侧为 false 时短路,不再计算右侧。
ok && ready||邏輯運算左結合左侧为 true 时短路,不再计算右侧。
cached || fallback=賦值語句右結合将右侧值赋给左侧变量。Go 的赋值是语句,不作为表达式参与运算。
count = 10:=賦值語句右結合声明并初始化局部变量。它是语句,不是表达式运算符。
name := "toolkk"+= -= *= /=賦值語句右結合把二元运算结果写回左侧变量;还包括 %=、<<=、>>=、&=、&^=、|=、^=。
total += price++ --其他語句無結合性Go 中自增和自减只能作为语句使用,不能嵌入表达式。
i++<-其他語句無結合性向 channel 发送值时是语句形式,不作为表达式求值。
ch <- value概覽
了解工具能解決的問題、計算或處理邏輯,以及資料邊界。
這份 Go 運算子查詢表讓你依符號、名稱、說明、範例或級別文字尋找條目,並用分類與結合性縮小結果。卡片會列出條目說明和 Go 程式碼範例,也可複製符號或範例。它適合快速確認語法概念;不會解析、編譯或執行你輸入的完整程式。
優先級表示沒有括號時,二元運算式如何分組。Go 規範由高至低分五級:乘除、取餘數、位移及位元運算符號 * / % << >> & &^;加減與位元或、異或 + - | ^;比較 == != < <= > >=;邏輯且 &&;邏輯或 ||。規範表以 5 表示最高二元級、1 表示最低二元級,同級二元運算子由左向右結合。
a + b * c 依規範分組為 a + (b * c);a || b && c 分組為 a || (b && c)。加上括號可直接呈現意圖。
此查詢表把主表達式、一元運算、五組二元運算,以及賦值和其他語句一併列出,方便依主題搜尋。因此卡片上的數字是本頁條目分組與排序標記,並非整張清單都能對應到 Go 規範的五個二元優先級。尤其規範採用「5 最高、1 最低」,本頁則以較小數字顯示較高位置;引用時請先看分類和實際符號,再回到規範對照。Go 語言規範的運算子優先級章節列出正式分組。
指南
依步驟完成操作,並透過範例核對輸入與結果。
可輸入完整符號,例如 &^、<<、&&,也可搜尋名稱、說明中的詞、範例片段或頁面顯示的級別數字。若只記得用途,試試「通道」、「位移」或「短變數」等詞。
先選「乘除位移」、「加減按位」、「比較運算」或「邏輯運算」等分類;查主表達式或語句時,也可選「主表示式」、「賦值語句」或「其他語句」。再視需要選左結合、右結合或無結合性。條件過多時可重設篩選,避免把符合條目隱藏。
開啟結果卡片確認符號在該條目中的意思,再複製符號或範例。相同字元可能有不同用法:例如 ^x 是一元按位取反,而 a ^ b 是二元按位異或,應連同分類閱讀。
遇到 8 / 4 * 2 時,同一二元級由左向右結合,分組為 (8 / 4) * 2。遇到比較和邏輯運算混用的條件,可先按規範逐層標出分組,再用括號寫清楚。查詢結果協助閱讀語法,不會判定型別是否相容或程式是否能通過編譯。
情境
查看這項工具在不同工作與生活流程中的用法。
審查者遇到算術、比較與邏輯運算混在一起的條件時,可查各符號分類與示例,依規範補上括號後再與作者確認原意。討論焦點會落在程式實際分組,而非憑閱讀習慣猜測。
學習位移、按位清除或通道接收時,以符號或名稱搜尋條目,閱讀用途範例,再回到官方規範核實上下文和型別要求。初學者也能用分類篩選,避免把語句誤認為二元運算子。
問答
集中解答常見疑問與容易混淆的問題。
不完全等於。清單包含主表達式、一元項目和語句,數字是清單自身的分組標記,而且排序方向與規範表不同。只有二元運算的五組應以官方規範編號理解。
&& 和 || 哪一個先分組?&& 的二元優先級高於 ||,所以 a || b && c 等同於 a || (b && c)。若條件較長,使用括號明示結構更容易閱讀。
=、++ 和通道傳送有運算優先級嗎?它們在清單中作語句參考;Go 規範的五級表是二元運算子的優先級表。賦值、短變數宣告、自增/自減及通道傳送不可當作該表的一級,亦不要用其他語言的賦值鏈規則推論 Go。
符號可能依位置代表不同語法。例如 ^ 可用於一元按位取反或二元異或;<- 則可出現在通道接收或傳送語句。用分類篩選並查看條目名稱和範例,確認後再套用到程式碼。
須知
使用前了解適用範圍、結果限制與必要提醒。
本頁同時整理運算式與語句條目,呈現的內部分組標記不能直接引用為官方優先級。判斷二元運算式分組時,請以 Go 語言規範為準;規範的優先級描述分組,不代表運算元一定依某種先後順序求值。查詢卡片也不會替你檢查完整程式、變數型別、編譯錯誤或執行結果。對可讀性有疑慮時,明確加上括號,並在 Go 編譯環境中確認。
推薦
查找相關工具、專題與可用的 API 能力。