[toc]
1、運算子
go 語言內建的運算子有:算術運算子、關係運算子、邏輯運算子、位運算子、賦值運算子、其他運算子。
(1)算數運算子
運算子描述+相加
-相減*相乘
/相除%求餘
++自增
--自減
(2)關係運算子
運算子描述
==檢查兩個值是否相等,如果相等返回 true 否則返回 false。
!=檢查兩個值是否不相等,如果不相等返回 true 否則返回 false。
>
檢查左邊值是否大於右邊值,如果是返回 true 否則返回 false。
<
檢查左邊值是否小於右邊值,如果是返回 true 否則返回 false。
>=
檢查左邊值是否大於等於右邊值,如果是返回 true 否則返回 false。
<=
檢查左邊值是否小於等於右邊值,如果是返回 true 否則返回 false。
(3)邏輯運算子
運算子描述
&&邏輯 and 運算子。 如果兩邊的運算元都是 true,則條件 true,否則為 false。\\
邏輯 or 運算子。 如果兩邊的運算元有乙個 true,則條件 true,否則為 false。
!邏輯 not 運算子。 如果條件為 true,則邏輯 not 條件 false,否則為 true。
(4)位運算子
運算子描述
&按位與運算子"&"是雙目運算子。 其功能是參與運算的兩數各對應的二進位相與。
\按位或運算子"\
"是雙目運算子。 其功能是參與運算的兩數各對應的二進位相或。
^按位異或運算子"^"是雙目運算子。 其功能是參與運算的兩數各對應的二進位相異或,當兩對應的二進位相異時,結果為1。
<<
左移運算子"<<"是雙目運算子。左移n位就是乘以2的n次方。 其功能把"<<"左邊的運算數的各二進位全部左移若干位,由"<<"右邊的數指定移動的位數,高位丟棄,低位補0。
>>
右移運算子">>"是雙目運算子。右移n位就是除以2的n次方。 其功能是把">>"左邊的運算數的各二進位全部右移若干位,">>"右邊的數指定移動的位數。
(5)賦值運算子
運算子描述
=簡單的賦值運算子,將乙個表示式的值賦給乙個左值
+=相加後再賦值
-=相減後再賦值
*=相乘後再賦值
/=相除後再賦值
%=求餘後再賦值
<<=
左移後賦值
>>=
右移後賦值
&=按位與後賦值
^=按位異或後賦值\=
按位或後賦值
(6)其他運算子
運算子描述
&取位址符,返回變數儲存位址
*取值符,返回指標的變數
特殊識別符號 '_'
「_」是特殊識別符號,又稱佔位符(空識別符號號),用來忽略結果。
2、流程控制
(1) if
func main(
a:=true
if a,b,c :=1,2,3;a+b+c>6else
)
(2)for
go語言沒有while,因為for 可以替代while ,⽀持三種迴圈⽅式,包括類 while 語法。
s := "abc"
for i, n := 0, len(s); i < n; i++
n := len(s)
for n > 0
println(s[n]) // 替代 for (; n > 0;) {}
n--}for
println(s) // 替代 for (;;) {}
}
(3)switchfunc main()
switch
switch a:=1;
}
3、goto, break, continue
go 語言支援 goto、break、continue 三種迴圈控制語句,三個語句都可以配合標籤( label )使用,標籤名區分大小寫,定義後不使用會造成編譯錯誤。
func main()
}break:
println("break")
exit: // error: label exit defined and not used
}
注意,goto、continue、break語句跳出到標籤,一定要注意標籤的位置,避免死迴圈。
注意:goto語句與標籤之間不能有變數宣告,否則編譯錯誤。
func main() //會引發編譯錯誤
break 語句跳出當前迴圈。可以配合標籤使用跳出多層迴圈。
continue :跳過當前迴圈的剩餘語句,然後繼續進行下一輪迴圈。。也可以配合標籤跳出多層。
04 Go基本語法
2 流程控制 3 goto,break,continue 4 for range 遍歷,多返回值 go 語言內建的運算子有 算術運算子 關係運算子 邏輯運算子 位運算子 賦值運算子 其他運算子。運算子描述 相加 相減 相乘 相除 求餘 自增 自減 運算子描述 檢查兩個值是否相等,如果相等返回 tru...
04Go基本語法
toc 1 運算子 go 語言內建的運算子有 算術運算子 關係運算子 邏輯運算子 位運算子 賦值運算子 其他運算子。1 算數運算子 運算子描述 相加 相減 相乘 相除 求餘 自增 自減 2 關係運算子 運算子描述 檢查兩個值是否相等,如果相等返回 true 否則返回 false。檢查兩個值是否不相等...
知識小結 04go語言定時器
1 go channel channel是golang在語言層面提供的goroutine間的通訊方式,比unix管道更易用也更輕便。channel主要用於程序內各goroutine間通訊,如果需要跨程序通訊,建議使用分布式系統的方法來解決。注 channel可以看作是乙個公共佇列,也可以當成公共佇列...