###### GO介紹##### # Go 即Golang,是Google公司2009年11月正式對外公開的一門程式語言 # Go是靜態強型別語言,是區別於解析型語言的編譯型語言(靜態:是否需要編譯 強型別:不同型別不允許直接運算)。 # python 是動態強型別:不需要編譯,不同型別不允許直接運算 # js 動態弱型別 解析型語言——原始碼是先翻譯為中間程式碼,然後由解析器對程式碼進行解釋執行。 編譯型語言——原始碼編譯生成機器語言,然後由機器直接執行機器碼即可執行。 # 跨平臺的編譯型語言:交叉編譯 ##### 常見程式語言比較######### -編譯型: -java: -jdk:java整合開發環境---》java開發需要用它---》好多公司執行java,也裝 -jre:java 執行環境,java程式執行,需要裝 -jvm:java虛擬機器,java--》原始碼---》位元組碼--》執行在jvm上 -java原始碼---》編譯後---》不是可執行檔案---》位元組碼檔案,jar,war包---》執行在jvm上 -編譯型語言--》跟傳統編譯型語言有區別 -sun公司---》甲骨文--》oracle -mysql免費開源軟體---》oracle投資了,買了它 -安卓開發需要java---》 -go:編譯後--->直接是可執行檔案--->交叉編譯--》跨平臺編譯 ----------以下都是 需要在不同平臺編譯----------- -c -C++ -C# -解釋型:---》無論開發還是執行---》都需要直譯器 -python:pipinstaller:https://zhuanlan.zhihu.com/p/430490285 -php -nodejs -。。。 # 如何保證python程式碼安全 -1 打包成可執行檔案 部署 -2 把原始碼做到docker中 -3 專案執行起來,原始碼刪除 # go 發展歷史 2009年11月7日 weekly.2009-11-06 —— 早期的版本 2012年3月28日 go1 —— 穩定版版的釋出 2015年8月19日 go1.5 —— 實現的架構變化,同時保留了和舊版本的相容性,本次更新中移除了”最後殘餘的C程式碼”。---》程式語言自舉 2020 年 2 月 go 1.14— — 現在 Go Module -包管理 # Go語言簡單易學,天生支援併發,完美契合當下高併發的網際網路生態
裝倆東西 - go sdk:https://golang.google.cn/dl/ -1.22.1 版本 -一路下一步--》裝好---》不需要配置環境變數 -開啟cmd -輸入 go version -IDE整合開發工具 -Goland: -vscode
# 使用goland建立專案 -go.mod # 等同於 package.json, requirements.txt pom.xml // 宣告當前檔案屬於哪個包,改成main 包 // 1 重點:go程式要執行,必須有個main包,入口是main函式 package main // 2 匯入fmt包---》列印函式在這個包下 import "fmt" // 3 函式 func main() { // 4 列印hello world fmt.Println("hello world") } // 5 執行專案幾種方式 /* 1 go build go檔案---》成可執行檔案---》執行可執行檔案 2 右鍵---》執行 3 main函式上點 綠色箭頭 4 使用命令:go run demo01.go 編譯並執行 */
# 一 變數定義規範 Go語言中的函式名、變數名、常量名、型別名、語句標號和包名等所有的命名,都遵循一個簡單的命名規則: # 1 以一個名字必須以一個字母(Unicode字母)或下劃線開頭,後面可以跟任意數量的字母、數字或下劃線 # 2 大寫字母和小寫字母是不同的:Name和name是兩個不同的變數 # 3 關鍵字和保留字都不建議用作變數名 # 二 關鍵字 Go語言中關鍵字有25個;關鍵字不能用於自定義名字,只能在特定語法結構中使用。 break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var # 三 保留字 go語言中有37個保留字,主要對應內建的常量、型別和函式 內建常量: true false iota nil 內建型別: int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr float32 float64 complex128 complex64 bool byte rune string error 內建函式: make len cap new append copy close delete complex real imag panic recover # 四 注意 -這些保留字並不是關鍵字,可以在定義中重新使用它們。在一些特殊的場景中重新定義它們也是有意義的,但是也要注意避免過度而引起語義混亂 -變數定義使用駝峰 go:AgeOfPerson python:age_of_person java:駝峰 -go 檔名 -python :下劃線 -go:下劃線 -java:駝峰