04 Go基本語法

2021-09-09 07:54:17 字數 2903 閱讀 5338

2、流程控制

3、goto, break, continue

4、for range 遍歷,多返回值

go 語言內建的運算子有:算術運算子、關係運算子、邏輯運算子、位運算子、賦值運算子、其他運算子。

運算子描述+相加

-相減*相乘

/相除%求餘

++自增–自減

運算子描述

==檢查兩個值是否相等,如果相等返回 true 否則返回 false。

!=檢查兩個值是否不相等,如果不相等返回 true 否則返回 false。

>

檢查左邊值是否大於右邊值,如果是返回 true 否則返回 false。

<

檢查左邊值是否小於右邊值,如果是返回 true 否則返回 false。

>=

檢查左邊值是否大於等於右邊值,如果是返回 true 否則返回 false。

<=

檢查左邊值是否小於等於右邊值,如果是返回 true 否則返回 false。

運算子描述

&&邏輯 and 運算子。 如果兩邊的運算元都是 true,則條件 true,否則為 false。

||邏輯 or 運算子。 如果兩邊的運算元有乙個 true,則條件 true,否則為 false。

!邏輯 not 運算子。 如果條件為 true,則邏輯 not 條件 false,否則為 true。

運算子描述

&按位與運算子"&"是雙目運算子。 其功能是參與運算的兩數各對應的二進位相與。

|按位或運算子"|"是雙目運算子。 其功能是參與運算的兩數各對應的二進位相或。

^按位異或運算子"^"是雙目運算子。 其功能是參與運算的兩數各對應的二進位相異或,當兩對應的二進位相異時,結果為1。

<<

左移運算子"<<「是雙目運算子。左移n位就是乘以2的n次方。 其功能把」<<「左邊的運算數的各二進位全部左移若干位,由」<<"右邊的數指定移動的位數,高位丟棄,低位補0。

>>

右移運算子">>「是雙目運算子。右移n位就是除以2的n次方。 其功能是把」>>「左邊的運算數的各二進位全部右移若干位,」>>"右邊的數指定移動的位數。

運算子描述

=簡單的賦值運算子,將乙個表示式的值賦給乙個左值

+=相加後再賦值

-=相減後再賦值

*=相乘後再賦值

/=相除後再賦值

%=求餘後再賦值

<<=

左移後賦值

>>=

右移後賦值

&=按位與後賦值

^=按位異或後賦值

|=按位或後賦值

運算子描述

&取位址符,返回變數儲存位址

*取值符,返回指標的變數

「_」是特殊識別符號,又稱佔位符(空識別符號號),用來忽略結果。

func

main

( a:=

true

if a,b,c :=1,

2,3;a+b+c>

6else

)

go語言沒有while,因為for 可以替代while ,⽀持三種迴圈⽅式,包括類 while 語法。

s :=

"abc"

for i, n :=0,

len(s)

; i < n; i++

n :=

len(s)

for n >

0println

(s[n]

)// 替代 for (; n > 0;) {}

n--}for

println

(s)// 替代 for (;;) {}

}

func

main()

switch

switch a:=1;

}

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 :跳過當前迴圈的剩餘語句,然後繼續進行下一輪迴圈。。也可以配合標籤跳出多層。

func

main()

if i >

1println

(i,":"

, j)}}

fmt.

println

("結束"

)}

n:=[4

]int

for i, v :=

range n

for range 可以用來遍歷陣列、切片、map 等等,,主要特點是方便,有多返回值,可以自由控制,

格式如上, i 表示索引, v表示該索引處的值, 通過:= range 後面跟要遍歷的資料。

當然,可以省略乙個返回值,比如只要值

for

_,v :=

range n

//或者只要索引或者map的key

for i:=

range n

04Go基本語法

toc 1 運算子 go 語言內建的運算子有 算術運算子 關係運算子 邏輯運算子 位運算子 賦值運算子 其他運算子。1 算數運算子 運算子描述 相加 相減 相乘 相除 求餘 自增 自減 2 關係運算子 運算子描述 檢查兩個值是否相等,如果相等返回 true 否則返回 false。檢查兩個值是否不相等...

04Go基本語法

toc 1 運算子 go 語言內建的運算子有 算術運算子 關係運算子 邏輯運算子 位運算子 賦值運算子 其他運算子。1 算數運算子 運算子描述 相加 相減 相乘 相除 求餘 自增 自減 2 關係運算子 運算子描述 檢查兩個值是否相等,如果相等返回 true 否則返回 false。檢查兩個值是否不相等...

知識小結 04go語言定時器

1 go channel channel是golang在語言層面提供的goroutine間的通訊方式,比unix管道更易用也更輕便。channel主要用於程序內各goroutine間通訊,如果需要跨程序通訊,建議使用分布式系統的方法來解決。注 channel可以看作是乙個公共佇列,也可以當成公共佇列...