go語言中只有for,以下是for的三種使用方式。
package main
import "fmt"
func sum(args ...int) (value int)
return
}func main()
//2.
for i := 0; i < 10;
value := sum(1, 3, 5)
fmt.printf("%d\n", value)
}
注意:使用range關鍵字會返回兩個數,第乙個是下標,第二個是下標對應的資料;而無需使用的值可是使用_來接受接收。
還可以使用len函式來得到集合中儲存元素的個數,然後使用for迴圈通過下標進行遍歷。另外,使用len函式還可以獲得字串中的字元個數。
不定引數的函式巢狀呼叫的情況:
package main
import "fmt"
func sum1(args ...int) (value int)
func sum2(args ...int) (value int)
func main()
type定義函式型別:
package main
import "fmt"
//type定義函式型別
type functype func(int, int) int
func demo (int, int) int
func main()
需要注意的是,不同型別的函式函式指標之間不能賦值。
package main
import "fmt"
a := 10
func main()
package main
import "fmt"
func main() (a, b)
f := func(a int, b int) int
//v:函式的返回值
fmt.printf("%d\n", v)
//f:函式指標
fmt.printf("%p\n", f)
}
在c語言中,可以使用while for goto 來製造死迴圈。在go語言中沒有while。以下是在go中使用goto語句製造的迴圈,可以使用另乙個goto來跳出迴圈,也可以使用return來結束迴圈。
在實際開發中,應該注意goto的使用,因為goto可能會使乙個函式與另乙個函式建立聯絡,這樣會破壞程式的耦合性。
package main
import "fmt"
func main()
goto here
end:
fmt.println("5")
fmt.println("6")
}
需要注意的是:
c語言中允許使用goto從乙個迴圈跳入另乙個迴圈,但是go語言中只可以使用goto跳出跳出迴圈,並不能進入另乙個迴圈。
c語言中使用goto從乙個迴圈跳入另乙個迴圈時,要注意需要使用的變數要宣告在第乙個迴圈變數之前,比如第二個迴圈的迴圈變數,否則使用了在被跳過的部分定義的資料是就會出現錯誤。
在呼叫函式、接收實參、定義變數時,都會占用棧的空間(printf函式會在呼叫完成後釋放,所以可以不用考慮在內)。
在c語言中,棧區系統開闢的空間大小為1mb(可以開闢陣列進行測試),在window環境下可以擴充套件為10mb,linux下可以擴充套件為16mb。
go語言對堆區和棧區進行了封裝,所以在棧中也可以開闢足夠大的空間(還可以對c語言中的mollac函式、go中的棧進行測試,mollac函式可以開闢的空間必須是連續的,可以開啟管理器檢視剩餘的記憶體大小作為參考,本次測試8g記憶體剩餘3.2g開闢了1g左右的空間;而go語言中的棧可以提供10億b的空間)。
c語言中使用const修飾的變數本質上是唯讀變數,可以通過指針對其進行修改。
go語言對常量的位址進行了封裝,使得程式設計師不能獲得常量的位址,對常量進行取位址運算時就會報錯(如果使用工具也是可以得到的)。所以go語言中的常量是相對安全的。
go語言基礎(二)
各語言的資料型別大同小異。go語言可以為數字型別和浮點型別設定位長,如int8,int16,int32,int64,uint8,float8,float32等。go語言沒有double型別的資料,通過float32或float64控制精度。分別精確到小數點後面7 15位。有以下數字型別 const ...
GO語言學習二(基礎)
一 包 每個 go 程式都是由包組成的。程式執行的入口是包main 二 匯入 兩種方式 多個 import import fmt import math 用圓括號組合了匯入,打包匯入 import fmt math 三 函式 函式可以沒有引數或接受多個引數 當兩個或多個連續的函式命名引數是同一型別,...
Go 語言基礎
go 語言內建的運算子有 1.算術運算子 2.關係運算子 3.邏輯運算子 4.位運算子 將其先轉換為二進位制數,在根據如下表規則 p q p q p q p q 0 0 0 0 0 0 1 0 1 1 1 1 1 1 0 1 0 0 1 1如假定 a 60 b 13 其二進位制數轉換為 a 0011...