2024年5月9日11:14:24
學習go
看課8小時轉職Golang工程師(如果你想低成本學習Go語言)_嗶哩嗶哩_bilibili
文檔[8小時轉職Golang工程師 (yuque.com)](
1.安裝go
2024年5月9日11:27:16
2.安裝 vscode go配置環境
vs code配置go開發環境 (zhihu.com)
vscode里面配置代理,然后重啟,再安裝go的工具包
$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.io,direct
3.Golang語言特性
go 優勢
?方便(直接編成機器碼
?靜態語言
?語言層面的并發(不是通過上層一層一層包裝出來的并發
?標準庫 runtime gc 其他各式各樣的庫
明星產品(docker、k8s)
劣勢
?包托管在私人的github上面 ,不安全
?只有error
?對c的降級處理并不完美
4.語法
hello world
5.聲明變量
package main
import “fmt”
var err string = “20”
var publicVariable = 10
func main() {
var a int = 10
//var a = 20
// a:= 20
fmt.Println(a)
fmt.Printf("%T\n", a)
b := "happy"
fmt.Println(b)
fmt.Printf("%T\n", b)fmt.Println(publicVariable)
fmt.Printf("%T\n", publicVariable)fmt.Println(err)
fmt.Printf("%T\n", err)
}
四種方式,全局變量不能用 “:=”
6.const 常量 iota
只能在const里面使用的 iota
按照行進行遞增的
7.返回值
具名返回值
(入參)(返參 形參)那里寫好名字
返參賦好值
return(只是結束)
8.import 包路徑
寫完整路徑,然后調用方法,會先去包的init方法,然后返回,在執行相應的方法。
記得 暴露出去的方法名 首字母要大寫,否則就是private的
9.匿名
因為語法 不能只引用而不用。
一些場景下需要只是用init方法,
. 的話
defer ==finally
就是寫在方法之前的關鍵字
defer 在return之后執行
執行順序也是棧式的,先進后出
切片本身就是指向數組當前位置的一個指針
slice是個 切片(取數邏輯和python的差不多)然后make([]int,3,5)3是大小,5是容量,下次擴容的大小,追加元素使用append
然后可以使用copy作為深拷貝
range就和java里的iterator一樣,迭代器一樣。
go就是把賦值的類型放在后面了
java里面也都是值傳遞,但是沒有指針這個東西,直接修改的就是對象。go這個不行
項目
解決:win下安裝netcat安裝及使用 - 簡書 (jianshu.com)
[Go 語言 cannot find module providing package github.com/_golang cannot find module providing package import-CSDN博客](
兩行命令搞定powershell utf-8亂碼_powershell 亂碼-CSDN博客
待了解
java zgc