您好,登錄后才能下訂單哦!
小編給大家分享一下如何使用GO語言進行開發(fā),希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
先來個hello world!
// godemo1 /* Author by zhangpeng */ package main import ( "fmt" ) func main() { fmt.Println("Hello World") }
運行結(jié)果:
C:/Go/bin/go.exe run godemo1.go [E:/GoTest] Hello World 成功: 進程退出代碼 0.
哇擦雷,代碼里竟然沒有分號!其實,和C一樣,Go的正式的語法使用分號來終止語句。和C不同的是,這些分號由詞法分析器在掃描源代碼過程中使用簡單的規(guī)則自動插入分號,因此輸入源代碼多數(shù)時候就不需要分號了。
規(guī)則是這樣的:如果在一個新行前方的最后一個標(biāo)記是一個標(biāo)識符(包括像int
和float64
這樣的單詞)、一個基本的如數(shù)值這樣的文字、或以下標(biāo)記中的一個時,會自動插入分號:
break continue fallthrough return ++ -- ) }
通常Go程序僅在for
循環(huán)語句中使用分號,以此來分開初始化器、條件和增量單元。如果你在一行中寫多個語句,也需要用分號分開。
注意:無論任何時候,你都不應(yīng)該將一個控制結(jié)構(gòu)((if
、for
、switch
或select
)的左大括號放在下一行。如果這樣做,將會在大括號的前方插入一個分號,這可能導(dǎo)致出現(xiàn)不想要的結(jié)果。
Go中的類型可以分類如下:
編號 | 類型和說明 |
---|---|
1 | 布爾類型 - 它們是布爾類型,由兩個預(yù)定義常量組成:(a)true (b)false |
2 | 數(shù)字類型 - 它們是算術(shù)類型,在整個程序中表示:a)整數(shù)類型或 b)浮點值。 |
3 | 字符串類型 - 字符串類型表示字符串值的集合。它的值是一個字節(jié)序列。 字符串是不可變的類型,一旦創(chuàng)建后,就不可能改變字符串的內(nèi)容。預(yù)先聲明的字符串類型是string 。 |
4 | 派生類型: - 包括(a)指針類型,(b)數(shù)組類型,(c)結(jié)構(gòu)類型,(d)聯(lián)合類型和(e)函數(shù)類型(f)切片類型(g)函數(shù)類型(h)接口類型(i) 類型 |
數(shù)組類型和結(jié)構(gòu)類型統(tǒng)稱為聚合類型。函數(shù)的類型指定具有相同參數(shù)和結(jié)果類型的所有函數(shù)的集合。我們將在下一節(jié)中看到基本類型,而其他類型將在后續(xù)章節(jié)中介紹。
預(yù)定義與體系結(jié)構(gòu)無關(guān)的整數(shù)類型是:
編號 | 類型和說明 |
---|---|
1 | uint8 - 無符號8位整數(shù)(0到255) |
2 | uint16 - 無符號16位整數(shù)(0到65535) |
3 | uint32 - 無符號32位整數(shù)(0至4294967295) |
4 | uint64 - 無符號64位整數(shù)(0至18446744073709551615) |
5 | int8 - 帶符號的8位整數(shù)(-128到127) |
6 | int16 - 帶符號的16位整數(shù)(-32768到32767) |
7 | int32 - 帶符號的32位整數(shù)(-2147483648至2147483647) |
8 | int64 - 帶符號的64位整數(shù)(-9223372036854775808至9223372036854775807) |
預(yù)定義的與體系結(jié)構(gòu)無關(guān)的浮點類型是:
編號 | 類型和說明 |
---|---|
1 | float32 - IEEE-754 32位浮點數(shù) |
2 | float64 - IEEE-754 64位浮點數(shù) |
3 | complex64 - 復(fù)數(shù)帶有float32 實部和虛部 |
4 | complex128 - 復(fù)數(shù)帶有float64實部和虛部 |
n
位整數(shù)的值是n
位,并且使用二進制補碼算術(shù)運算來表示。
還有一組具有特定大小的數(shù)字類型:
編號 | 類型和說明 |
---|---|
1 | byte - 與uint8 相同 |
2 | rune - 與int32 相同 |
3 | uint - 32或64位 |
4 | int - 與uint 大小相同 |
5 | uintptr - 無符號整數(shù),用于存儲指針值的未解釋位 |
變量的聲明很像 javascript,使用 var關(guān)鍵字。
//聲明初始化一個變量 var x int = 888 var str string = "hello world" //聲明初始化多個變量 var i, j, k int = 1, 2, 3 //不用指明類型,通過初始化值來推導(dǎo) var b = false//bool型
還有一種定義變量的方式
x := 888 //相當(dāng)于 var x int = 888
常量很簡單,使用const關(guān)鍵字:
const s string = "hello world" const pi float32 = 3.1415926
數(shù)組
func main() { var a [5]int fmt.Println("array a:", a) a[1] = 10 a[3] = 30 fmt.Println("fangwifi:", a) fmt.Println("len:", len(a)) b := [5]int{1, 2, 3, 4, 5} fmt.Println("init:", b) var c [2][3]int for i := 0; i < 2; i++ { for j := 0; j < 3; j++ { c[i][j] = i + j } } fmt.Println("2d: ", c) }
運行結(jié)果:
array a: [0 0 0 0 0] fangwifi: [0 10 0 30 0] len: 5 init: [1 2 3 4 5] 2d: [[0 1 2] [1 2 3]]
數(shù)組的切片操作
a := [5]int{1, 2, 3, 4, 5} b := a[2:4] // a[2] 和 a[3],但不包括a[4] fmt.Println(b) b = a[:4] // 從 a[0]到a[4],但不包括a[4] fmt.Println(b) b = a[2:] // 從 a[2]到a[4],且包括a[2] fmt.Println(b)
注意:if 語句沒有圓括號,而必需要有花括號
//if 語句 if x % 2 == 0 { //do anything } //if - else if x % 2 == 0 { //偶數(shù)... } else { //奇數(shù)... } //多分支 if num < 0 { //負(fù)數(shù) } else if num == 0 { //零 } else { //正數(shù) }
注意:switch語句沒有break,還可以使用逗號case多個值switch 語句
switch i { case 1: fmt.Println("one") case 2: fmt.Println("two") case 3: fmt.Println("three") case 4,5,6: fmt.Println("four, five, six") default: fmt.Println("invalid value!") }
前面你已見過了,下面再來看看for的三種形式:(注意:Go語言中沒有while)for 語句
//經(jīng)典的for語句 init; condition; post for i := 0; i<10; i++{ fmt.Println(i) } //精簡的for語句 condition i := 1 for i<10 { fmt.Println(i) i++ } //死循環(huán)的for語句 相當(dāng)于for(;;) i :=1 for { if i>10 { break } i++ }
看完了這篇文章,相信你對“如何使用GO語言進行開發(fā)”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。