go 語言入門
阿新 • • 發佈:2021-06-15
go介紹
#1 Go 即Golang,是Google公司2009年11月正式對外公開的一門程式語言 #2 解釋型,編譯型 Go是靜態(編譯型)強型別語言,是區別於解析型語言的弱型別語言(靜態:型別固定 強型別:不同型別不允許直接運算)。 python動態強型別語言 解析型語言——原始碼是先翻譯為中間程式碼,然後由解析器對程式碼進行解釋執行。 編譯型語言——原始碼編譯生成機器語言,然後由機器直接執行機器碼即可執行 #3 哪些是編譯,哪些是解釋 編譯:java,c,c++,c#,go 解析型:python,js,php... 編譯型語言涉及到跨平臺,因為它需要編譯成該平臺的可執行檔案,java--》執行在jvm之上 go:跨平臺編譯,交叉編譯,在windows平臺編譯出mac上可執行 解釋型:不存在跨平臺問題,有直譯器 #4 特性 跨平臺的編譯型語言,交叉編譯 管道(channel),切片(slice),併發(routine) 有垃圾回收的機制 支援面向物件和麵向過程的程式設計模式(go的面向物件沒有類的概念) # 5 發展(go是用c寫起來的) 2009年11月7日 weekly.2009-11-06 —— 早期的版本 2015年8月19日 go1.5 —— 實現的架構變化,同時保留了和舊版本的相容性,本次更新中移除了”最後殘餘的C程式碼”。# 從此以後,自舉,自己寫自己 2018年8月24日 go 1.11 :modules,包管理2020 年 8 月 go 1.15 # Go語言應用 中國的網際網路公司,多多少少都會用,有些沒用的,都在準備用 ##### docker k8s 藍鯨 雲端計算 百度 小米:falcon ##### 七牛雲 ## 應用領域,go適合做什麼 服務的開發,微服務開發,運維相關,區塊鏈,雲平臺 第一款開源區塊鏈產品是用go寫的 # Go語言發展前景,為什麼火 很新,生態不完善 完美契合當下高併發的網際網路生態 語法簡單,速度快 雲端計算和區塊鏈的火,網際網路企業高併發的需求
go開發環境搭建
#1 ide,整合開發環境(goland等同於pycharm) -goland(jetbrains全家桶),vscode-推薦用goland,pycharm,idea,androidstudio 一路下一步 #2 開發環境 sdk 一路下一步 # 測試安裝成功 go version 把版本打印出來就裝成功了 # 3注意事項(重點) -goland建立專案,選擇go的安裝路徑(預設選中了) -gopath:所有的go程式碼必須放在這個路徑下的src資料夾下,否則無法執行,預設建立到使用者家目錄下的go資料夾(mac,windows,linux) -建立專案路徑,go檔案都不要出現中文 # 3 go命令 # 必須記住的 go env # go的環境變數 -GO111MODULE=空的,現在沒有使用MODULE模式 -GOPATH=C:\Users\oldboy\go #程式碼存放路徑 -GOROOT=c:\go # go sdk安裝路徑 go build # 編譯型語言,需要先編譯再執行,編譯成可執行檔案,執行可執行檔案 go run # 編譯並執行,開發階段用,兩步並作一步 # 其他不太需要記得 go get # 下載並安裝包和依賴等同於pip install go version go fmt #執行gofmt進行格式化(go fmt :自動將程式碼格式)
hello world
//go語言的註釋 //單行註釋 /* 多行註釋 多行註釋 */ // 重點 //go(所有編譯型語言)專案要執行,必須有一個入口 //go的入口是main包下的main函式 // main包下可不可以有多個main函式:不可以 package main //宣告包名,包名是main,每一個go檔案都屬於某個包 import "fmt" //匯入包,內建包 func main() { //定義了一個main函式,大括號包裹是函式體的內容 fmt.Println("hello world") //列印函式等同與print() } // 編譯 go build s1.go // 執行 s1.exe // 編譯並執行 go run s1.go // 在goland中,右鍵,執行即可