目錄
Go介紹
GOOGLE開發的
PYTHON開發效率極高 C語言、C++極致運行性能
GO開發效率與運行性能都能兼具
Go語言的誕生
三位創作者:
中間:Rob Pike unix開發者 utf8開發者
右邊:Ken Thompson B語言開發者
三位本身都是用C++編程的
Go語言的優勢
優勢總結:
- 開發效率高、運行性能好(均衡)
- 高併發
GO出現在雙核處理器後面,之前的語言都是基於單核,所以GO才能立足於高併發的優勢
Go語言的應用領域
區塊鏈:Web3.0去中心化,Go就是在其中的語言
GO主要就是在"網路併發層"發光發熱
使用GO的大型網路公司:
計算機硬體組成
CPU:有兩個部分,運算器、控制器
編程語言介紹
什麼是編程語言
人與計算機溝通的語言
編程語言的發展經歷:
機器語言(指令系統) => 匯編語言 => 高級語言 (C、java、Go等)
匯編語言:指令符號化010010010101 => ADD
高級語言:多條指令合成一條指令
編譯型語言與解釋型語言
編譯型:C++、C
解釋型:python、js
編譯型: 開發一個軟體,透過軟體(編譯器),將程式語言,轉成可執行的二進制文件(EX: .exe),調CPU執行這些程式的效果。
- 優點:可執行的二進制文件,後續可一直覆用
- 缺點:因為編譯是基於當下環境,產生可執行文件,跨平台性弱
解釋型: 逐行逐行執行,不會編譯成一個可執行文件
- 優點:不生成執行文件,跨平台性就比較好
- 缺點:每次要看結果,都要重新翻譯執行
go環境安裝
linux系統
[root@redis91 ~]# sudo tar -C /usr/local -xzf go1.21.5.linux-amd64.tar.gz
[root@redis91 ~]# sudo vim /etc/profile
# 加到最後面
export PATH=$PATH:/usr/local/go/bin
[root@redis91 ~]# source /etc/profile
[root@redis91 ~]# go version
go version go1.21.5 linux/amd64
mac系統
這裡是顯示,我之前已經安裝過go了
全程下一步就可以
安裝成功,檢查
chenqingze@chenqingze-MBP ~ % go version
go version go1.21.1 darwin/arm64
chenqingze@chenqingze-MBP ~ %
環境變數
chenqingze@chenqingze-MBP ~ % go env
# go安裝的根目錄
GOROOT='/usr/local/go'
# go代碼放置處
GOPATH='/Users/chenqingze/go'
# go代理位置
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/usr/local/go'
# 放編譯器
go/bin
# 放置依賴包
go/src
GOPATH='/Users/chenqingze/go'
第一個go程序
先關閉MODULE 啟用 Go 模組系統。在這種模式下,Go 會忽略 GOPATH 環境變數和其他傳統 Go 程序搜索路徑,並且只在當前模組的 go.mod 文件中指定的模組路徑中查找包
chenqingze@chenqingze-MBP ~ % go env -w "GO111MODULE=off"
# 退出當前terminal再登入,查看環境變數
chenqingze@chenqingze-MBP ~ % go env
GO111MODULE='off'
最小寫程式單元,一定要創建目錄,再來寫代碼
chenqingze@chenqingze-MBP ~ % cd /Users/chenqingze/Desktop/
chenqingze@chenqingze-MBP Desktop % mkdir hello
chenqingze@chenqingze-MBP Desktop % cd hello
chenqingze@chenqingze-MBP hello % ls -l
total 8
-rw-r--r--@ 1 chenqingze staff 70 11 4 15:16 main.go
main.go
package main
import "fmt"
func main(){
fmt.Println("hello jimmy")
}
直接執行編譯,並執行
chenqingze@chenqingze-MBP hello % go run main.go
hello jimmy
生成可執行文件
配置GOPATH,將編程代碼都放置此處
/Users/chenqingze/goWork
# 當前家目錄創建goWork目錄
chenqingze@chenqingze-MBP ~ % mkdir goWork
chenqingze@chenqingze-MBP ~ % cd goWork
chenqingze@chenqingze-MBP goWork % mkdir src
# 配置環境變數
chenqingze@chenqingze-MBP ~ % vim ~/.zprofile
export GOPATH=$HOME/goWork
# 退出當前terminal再登入,查看環境變數
chenqingze@chenqingze-MBP ~ % go env
GOPATH='/Users/chenqingze/goWork'
先執行編譯產生可執行文件,再執行
chenqingze@chenqingze-MBP ~ % cd Desktop/hello
chenqingze@chenqingze-MBP hello % ls -l
total 8
-rw-r--r--@ 1 chenqingze staff 70 11 4 15:16 main.go
# 編譯產生可執行文件
chenqingze@chenqingze-MBP hello % go build
chenqingze@chenqingze-MBP hello % ls -l
total 3776
-rwxr-xr-x@ 1 chenqingze staff 1925602 11 4 16:02 hello
-rw-r--r--@ 1 chenqingze staff 70 11 4 15:16 main.go
# 執行
chenqingze@chenqingze-MBP hello % ./hello
hello jimmy
如果改源碼,需再執行編譯產生可執行文件,新代碼結果才會呈現
自定義執行文件檔名
chenqingze@chenqingze-MBP hello % go build -o hi
chenqingze@chenqingze-MBP hello % ls -l
total 7544
-rwxr-xr-x@ 1 chenqingze staff 1925602 11 4 16:02 hello
-rwxr-xr-x@ 1 chenqingze staff 1925602 11 4 16:06 hi
-rw-r--r--@ 1 chenqingze staff 70 11 4 15:16 main.go
chenqingze@chenqingze-MBP hello % ./hi
hello jimmy
小結
- go build [-o] 生成一個可執行文件
- go run 編譯並執行
- 寫代碼流程,先創建文件夾,進入創建xxx.go程式,開始撰寫代碼
代碼解釋
/* 主包 */
package main
import "fmt"
/* 主程序入口 */
func main(){
fmt.Println("hello jimmy")
}
IDE的安裝和使用
安裝Goland或Vscode
幫助快速開發
mac系統
Goland官網: https://www.jetbrains.com/go/download/#section=mac
我選擇使用較舊的版本
第一次打開畫面,選擇New Project
目錄選擇
創建go程序
生成可執行文件
先關閉go module