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...