返回
Featured image of post go介紹、安裝配置環境、寫第一個go程序、go基礎語法、變量、基本數據類型、運算符、輸入輸出函數

go介紹、安裝配置環境、寫第一個go程序、go基礎語法、變量、基本數據類型、運算符、輸入輸出函數

學習golang第一天,go介紹、安裝配置環境、寫第一個go程序、go基礎語法、變量、基本數據類型、運算符、輸入輸出函數

目錄

Go介紹

GOOGLE開發的

PYTHON開發效率極高 C語言、C++極致運行性能

GO開發效率與運行性能都能兼具

Go語言的誕生

三位創作者:

中間:Rob Pike unix開發者 utf8開發者

右邊:Ken Thompson B語言開發者

左邊:Robert Griesemer

三位本身都是用C++編程的

Go語言的優勢

優勢總結:

  1. 開發效率高、運行性能好(均衡)
  2. 高併發

GO出現在雙核處理器後面,之前的語言都是基於單核,所以GO才能立足於高併發的優勢

Go語言的應用領域

區塊鏈:Web3.0去中心化,Go就是在其中的語言

GO主要就是在"網路併發層"發光發熱

使用GO的大型網路公司:

計算機硬體組成

CPU:有兩個部分,運算器、控制器

編程語言介紹

什麼是編程語言

人與計算機溝通的語言

編程語言的發展經歷:

機器語言(指令系統) => 匯編語言 => 高級語言 (C、java、Go等)

匯編語言:指令符號化010010010101 => ADD

高級語言:多條指令合成一條指令

編譯型語言與解釋型語言

編譯型:C++、C

解釋型:python、js

編譯型: 開發一個軟體,透過軟體(編譯器),將程式語言,轉成可執行的二進制文件(EX: .exe),調CPU執行這些程式的效果。

  • 優點:可執行的二進制文件,後續可一直覆用
  • 缺點:因為編譯是基於當下環境,產生可執行文件,跨平台性弱

解釋型: 逐行逐行執行,不會編譯成一個可執行文件

  • 優點:不生成執行文件,跨平台性就比較好
  • 缺點:每次要看結果,都要重新翻譯執行

go環境安裝

官網: https://go.dev/dl/

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

IDE直接執行go run

基礎語法

註釋

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
使用 Hugo 建立
主題 StackJimmy 設計
發表了128篇文章 · 總計63.96k字
本站已運行
·