go語言之旅 二

2021-09-26 02:29:40 字數 1306 閱讀 7469

package main

import "fmt"

func main()

//if-else

if x%2==0 else

num:=-1

//多分支

go語言只有一種迴圈結構,即for迴圈。語法如下:

sum := 0

for i := 0; i < 10; i++

注意:for語句後面沒有小括號。

for語句前後兩部分都是可以省略的,如:

sum := 1    

for sum < 1000

package main

import "fmt"

func main()

i2:=1

for i2<10

i3:=1

for fmt.println(i3)

i3++

}}

if條件if語句後面也沒有小括號,但後面的大括號是必須的。

dennis:=1

if dennis>0

同 for 一樣, if 語句可以在條件表示式前執行乙個簡單的語句。如:

if v := math.pow(x, n); v < lim

go語言中的switch與c類似,但每個case後預設break,並且case的取值不必為整數且無需為常量。

defer 語句會將函式推遲到外層函式返回之後執行。如下面的函式:

func main()

執行結果為

hello

world

推遲的函式呼叫會被壓入乙個棧中。 當外層函式返回時,被推遲的函式會按照後進先出的順序呼叫。

go語言之旅 三

指標 go與c語言一樣,擁有指標。指標儲存了值的記憶體位址。型別 t是指向t型別值的指標。其零值為nil。定義如下 var p int 與 c 不同,go 沒有指標運算。結構體 與c語言類似,除了定義方式不同之外,其他都與c相同,如訪問方式 等。陣列 型別 n t 表示擁有 n 個 t 型別的值的陣...

Go語言之旅 閉包

閉包是在詞法上下文中引用了自由變數的函式,這種說法可能太過學術化了,很難理解。用通俗的話來說,閉包相當於在乙個函式中,去捕獲自由變數 在函式外部定義但在函式內被引用的變數 當脫離了捕獲該自由變數的上下文,依舊可以使用該自由變數。我們來看乙個例子 func test x int func func m...

Go 語言之旅 2(通道 併發互斥)

這裡要求實現walk和same函式,將樹的值依次送到通道裡,然後在再same裡進行比較。這裡使用到了通道。package main import golang.org x tour tree import fmt walk 步進 tree t 將所有的值從 tree 傳送到 channel ch。f...