掌握了這些知識,在Go語言的編程世界裡,基本上可以暢行無阻了
掌握了這些知識,在Go語言的編程世界裡,基本上可以暢行無阻了
大家好,這一期我們來談一下Go語言, Go語言現在軟件開發中的地位越來越高了,尤其是在後端開發中因為其加載的高效性吸引了眾多的開發者。
說到Go的高效,主要是因為它最終生成的運行文件是機器碼文件, 就像C和C++編譯以後生成的文件一樣的格式。
掌握了這些知識,在Go語言的編程世界裡,基本上可以暢行無阻了
大家好,這一期我們來談一下Go語言, Go語言現在軟件開發中的地位越來越高了,尤其是在後端開發中因為其加載的高效性吸引了眾多的開發者。
說到Go的高效,主要是因為它最終生成的運行文件是機器碼文件, 就像C和C++編譯以後生成的文件一樣的格式。
現在比較流行的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的高效,主要是因為它最終生成的運行文件是機器碼文件, 就像C和C++編譯以後生成的文件一樣的格式。
現在比較流行的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語言的安裝,編譯,運行,變量,函數,條件判斷,數組,動態數組,map, 循環, 錯誤檢查和返回, 指針等。
可以說掌握了基本知識,在Go語言的編程世界裡,基本上可以暢行無阻了。這也是GO語言受人喜愛的原因之一。
好了,這期就先說這些,這裡是丁哥開講,歡迎關注防止失聯。