'掌握了這些知識,在Go語言的編程世界裡,基本上可以暢行無阻了'

"

掌握了這些知識,在Go語言的編程世界裡,基本上可以暢行無阻了


"

掌握了這些知識,在Go語言的編程世界裡,基本上可以暢行無阻了


掌握了這些知識,在Go語言的編程世界裡,基本上可以暢行無阻了


大家好,這一期我們來談一下Go語言, Go語言現在軟件開發中的地位越來越高了,尤其是在後端開發中因為其加載的高效性吸引了眾多的開發者。

說到Go的高效,主要是因為它最終生成的運行文件是機器碼文件, 就像C和C++編譯以後生成的文件一樣的格式。


"

掌握了這些知識,在Go語言的編程世界裡,基本上可以暢行無阻了


掌握了這些知識,在Go語言的編程世界裡,基本上可以暢行無阻了


大家好,這一期我們來談一下Go語言, Go語言現在軟件開發中的地位越來越高了,尤其是在後端開發中因為其加載的高效性吸引了眾多的開發者。

說到Go的高效,主要是因為它最終生成的運行文件是機器碼文件, 就像C和C++編譯以後生成的文件一樣的格式。


掌握了這些知識,在Go語言的編程世界裡,基本上可以暢行無阻了


現在比較流行的Java,C#,這類語言生成的是中間語言代碼文件,電腦還不能立即運行,需要加載以後轉化成機器碼才可以運行。

像我們熟悉的Python,PHP這類語言代碼是解釋性的語言代碼,需要解釋器邊解釋邊編譯邊運行。

這樣相比下來,加載速度和運行速度最高的當然就是直接加載運行機器碼了。

有一種說法,就是說GO程序運行完結果以後, 有些解釋類語言程序,比如說PHP或者Python還沒有加載完成呢。

那麼,程序加載完成以後呢,說實在的, 效率方面就沒有太大差別了。

接下來我們就談一下Go語言的安裝和編譯運行。

用Go語言當然要先安裝,這個直接去goalong.org的網站上就可以了, 這個取決於你用什麼樣的系統下載什麼安裝包。

當然了,你也可以直接在你的系統裡面用命令行安裝, 比如說你在MAC上可以直接用brew install go,或者ubuntu上用apt-get insyall go。

安裝完Go以後, Go的相關的命令也就都可以用起來了。

最值得一提的是,Go工程跟其他語言的工程概念不太一樣。

Go的所有的工程都在一個地方, 稱之為工作空間。

這個命令行:go env GOPATH, 可以告訴你當前的工作空間在哪裡。

在這個工作空間裡面,你要建一個src目錄作為你的代碼文件目錄。

如果你有多個工程的話,他們的源代碼都會在這個src的目錄下。

比如說你有一個工程,你就起一個名hello,然後在這個工程目錄裡面你創建一個go文件。

這個文件要作為文件入口的話,你需要在這個文件開始聲明一個package 名 main,然後需要創建一個main入口函數。

運行這個文件的話,你可以用 go run hello.go, 這個命令行會直接運行你的go文件, 並返回結果。

也可以用go build, 這個命令會生成一個二進制文件,這個文件是可以直接運行的。

你也可以用go install這個命令,會生成一個二進制文件,位置在跟src同級的bin文件夾裡面。

接下來我們來說一些Go語言的語法細節。

定義一個變量可以這樣:

var x int

var s string

定義變量,不賦值的話缺省為零(數字)或空(字符串)。

定義並賦值的話可以這樣:

var x int = 1

var s string = “test”

也可以使用簡化形式:

x:= 1

s:= “test”

接下來說一下條件判斷。

if x> 5 {

} else if x < 2 {

} else {

}

條件判斷不需要括號。

接下來說一下數組。

定義一個數組可以這樣:

var a [5] int

對於數字數組來說不賦值的話,缺省為0。

單個元素賦值可以這樣做:

a[3] = 56

代表是把第4個元素設為56。

簡化的定義數組並賦值的模式如下:

a:=[5]int{5,4,3,2,1}

上面這種數組稱為靜態數組,長度不可改變。

可以用slice來創建動態數組。

就是這樣a:=[]int{5,4,3,2,1}。

動態數組可以往裡面添加元素。

a:=append(a,13)

接下來說一下map。

testmap := make(map[string]int)

string是鍵的類型,int是值的類型。

賦值方式是這樣子的:

testmap[“key1”] = 2

testmap[“key2”] = 3

刪除某個值的話可以這樣做。

delete(testmap, “key1”)

接下來說一下循環。

Go語言只有一種循環for。

可以這樣:

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

}

也可以這樣:

for i < 10 {

}

這個相當於while循環。

也可以這樣來遍歷一個數組:

for index, value := range arr {

}

也可以這樣來遍歷一個map:

for key, value := range testmap {

}

創建一個新函數這樣做:

func sum(x int, y int) int{

return x+y

}

調用方式如下:

result:=sum(2,3)

上面這個函數表示輸入兩個整數,返回這個兩個整數之和。

一個函數可以返回兩個值:

func testFun(x int) (int, error){

if x < 0 {

return 0, errors.New(“Cannot use negative input”)

}

return x * 10, nil

}

調用方式如下:

result,err:=testFun(10)

if err !- nil {

} else {

}

接下來說一下結構定義。

type person struct {

firstName string

lastName string

}

這樣用:

p:=person{firstName:”Jack”, lastName: “Wang”}

p.firstName

p.lastName

接下來看一看內存地址, 引用和指針。

i:=78

fmt.Println(&i)

通過引用這樣可以打印出i變量的內存地址來。

下面是引用的一個用法。

func test(x *int)

{

*x++

}

test(&i)

調用這個函數以後,i的值會被加1。


"

掌握了這些知識,在Go語言的編程世界裡,基本上可以暢行無阻了


掌握了這些知識,在Go語言的編程世界裡,基本上可以暢行無阻了


大家好,這一期我們來談一下Go語言, Go語言現在軟件開發中的地位越來越高了,尤其是在後端開發中因為其加載的高效性吸引了眾多的開發者。

說到Go的高效,主要是因為它最終生成的運行文件是機器碼文件, 就像C和C++編譯以後生成的文件一樣的格式。


掌握了這些知識,在Go語言的編程世界裡,基本上可以暢行無阻了


現在比較流行的Java,C#,這類語言生成的是中間語言代碼文件,電腦還不能立即運行,需要加載以後轉化成機器碼才可以運行。

像我們熟悉的Python,PHP這類語言代碼是解釋性的語言代碼,需要解釋器邊解釋邊編譯邊運行。

這樣相比下來,加載速度和運行速度最高的當然就是直接加載運行機器碼了。

有一種說法,就是說GO程序運行完結果以後, 有些解釋類語言程序,比如說PHP或者Python還沒有加載完成呢。

那麼,程序加載完成以後呢,說實在的, 效率方面就沒有太大差別了。

接下來我們就談一下Go語言的安裝和編譯運行。

用Go語言當然要先安裝,這個直接去goalong.org的網站上就可以了, 這個取決於你用什麼樣的系統下載什麼安裝包。

當然了,你也可以直接在你的系統裡面用命令行安裝, 比如說你在MAC上可以直接用brew install go,或者ubuntu上用apt-get insyall go。

安裝完Go以後, Go的相關的命令也就都可以用起來了。

最值得一提的是,Go工程跟其他語言的工程概念不太一樣。

Go的所有的工程都在一個地方, 稱之為工作空間。

這個命令行:go env GOPATH, 可以告訴你當前的工作空間在哪裡。

在這個工作空間裡面,你要建一個src目錄作為你的代碼文件目錄。

如果你有多個工程的話,他們的源代碼都會在這個src的目錄下。

比如說你有一個工程,你就起一個名hello,然後在這個工程目錄裡面你創建一個go文件。

這個文件要作為文件入口的話,你需要在這個文件開始聲明一個package 名 main,然後需要創建一個main入口函數。

運行這個文件的話,你可以用 go run hello.go, 這個命令行會直接運行你的go文件, 並返回結果。

也可以用go build, 這個命令會生成一個二進制文件,這個文件是可以直接運行的。

你也可以用go install這個命令,會生成一個二進制文件,位置在跟src同級的bin文件夾裡面。

接下來我們來說一些Go語言的語法細節。

定義一個變量可以這樣:

var x int

var s string

定義變量,不賦值的話缺省為零(數字)或空(字符串)。

定義並賦值的話可以這樣:

var x int = 1

var s string = “test”

也可以使用簡化形式:

x:= 1

s:= “test”

接下來說一下條件判斷。

if x> 5 {

} else if x < 2 {

} else {

}

條件判斷不需要括號。

接下來說一下數組。

定義一個數組可以這樣:

var a [5] int

對於數字數組來說不賦值的話,缺省為0。

單個元素賦值可以這樣做:

a[3] = 56

代表是把第4個元素設為56。

簡化的定義數組並賦值的模式如下:

a:=[5]int{5,4,3,2,1}

上面這種數組稱為靜態數組,長度不可改變。

可以用slice來創建動態數組。

就是這樣a:=[]int{5,4,3,2,1}。

動態數組可以往裡面添加元素。

a:=append(a,13)

接下來說一下map。

testmap := make(map[string]int)

string是鍵的類型,int是值的類型。

賦值方式是這樣子的:

testmap[“key1”] = 2

testmap[“key2”] = 3

刪除某個值的話可以這樣做。

delete(testmap, “key1”)

接下來說一下循環。

Go語言只有一種循環for。

可以這樣:

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

}

也可以這樣:

for i < 10 {

}

這個相當於while循環。

也可以這樣來遍歷一個數組:

for index, value := range arr {

}

也可以這樣來遍歷一個map:

for key, value := range testmap {

}

創建一個新函數這樣做:

func sum(x int, y int) int{

return x+y

}

調用方式如下:

result:=sum(2,3)

上面這個函數表示輸入兩個整數,返回這個兩個整數之和。

一個函數可以返回兩個值:

func testFun(x int) (int, error){

if x < 0 {

return 0, errors.New(“Cannot use negative input”)

}

return x * 10, nil

}

調用方式如下:

result,err:=testFun(10)

if err !- nil {

} else {

}

接下來說一下結構定義。

type person struct {

firstName string

lastName string

}

這樣用:

p:=person{firstName:”Jack”, lastName: “Wang”}

p.firstName

p.lastName

接下來看一看內存地址, 引用和指針。

i:=78

fmt.Println(&i)

通過引用這樣可以打印出i變量的內存地址來。

下面是引用的一個用法。

func test(x *int)

{

*x++

}

test(&i)

調用這個函數以後,i的值會被加1。


掌握了這些知識,在Go語言的編程世界裡,基本上可以暢行無阻了


現在做一下 小結,上面我們介紹了GO語言的安裝,編譯,運行,變量,函數,條件判斷,數組,動態數組,map, 循環, 錯誤檢查和返回, 指針等。

可以說掌握了基本知識,在Go語言的編程世界裡,基本上可以暢行無阻了。這也是GO語言受人喜愛的原因之一。

好了,這期就先說這些,這裡是丁哥開講,歡迎關注防止失聯。

"

相關推薦

推薦中...