摘要:而且數(shù)組是定長(zhǎng)的,而切片可以調(diào)整長(zhǎng)度。也就是說類型的值可以用于表示任意語言類型的值。下劃線讓編譯器接受這類導(dǎo)入,并且調(diào)用對(duì)應(yīng)包內(nèi)的所有代碼文件里定義的函數(shù)。結(jié)構(gòu)體可以當(dāng)做是一種數(shù)據(jù)類型一般都默認(rèn)函
緣起
之前下載視頻用的you-get,但是b站一直下不了,優(yōu)酷也經(jīng)常出問題,所以接觸到lulu https://github.com/iawia002/Lulu 這個(gè)也是基于you-get 直接 pip install lulu,但是作者不維護(hù)了,新出了個(gè) https://github.com/iawia002/a... 這個(gè)不是python 開發(fā)的 ,而是 go ,通過 go get github.com/iawia002/annie 來安裝 ,比如之前用lulu下載電影優(yōu)酷的《大話西游》,這里推薦下優(yōu)酷的2個(gè)播主,上傳了幾百個(gè)經(jīng)典香港電影 :
經(jīng)典香港電影
東方不敗影院
$ lulu -i https://v.youku.com/v_show/id_XMzY4OTMxMTYyMA==.html? It seems that your ffmpeg is a nightly build. Please switch to the latest stable if merging failed. site: 優(yōu)酷 (Youku) title: 大話西游之大圣娶親【周星馳】【1080p】【國(guó)語中字】 streams: # Available quality and codecs [ DEFAULT ] _________________________________ - format: mp4hd3v2 container: mp4 video-profile: 1080P size: 1777.4 MiB (1863787718 bytes) m3u8_url: http://pl-ali.youku.com/playlist/m3u8?vid=XMzY4OTMxMTYyMA&type=mp4hd3v3&ups_client_netip=756495b7&utid=31o%2FFP58k0kCAXVklbeqyp8h&ccode=0502&psid=f9aac3a8a0c035a6baa3a745a49c2487&duration=5983&expire=18000&drm_type=1&drm_device=7&ups_ts=1538813154&onOff=0&encr=0&ups_key=5310a4e7d0e7795209d27a8b117c8a04 # download-with: lulu --format=mp4hd3v2 [URL] - format: mp4hd2v2 container: mp4 video-profile: 超清 size: 906.9 MiB (950999892 bytes) m3u8_url: http://pl-ali.youku.com/playlist/m3u8?vid=XMzY4OTMxMTYyMA&type=mp4hd2v3&ups_client_netip=756495b7&utid=31o%2FFP58k0kCAXVklbeqyp8h&ccode=0502&psid=f9aac3a8a0c035a6baa3a745a49c2487&duration=5983&expire=18000&drm_type=1&drm_device=7&ups_ts=1538813154&onOff=0&encr=0&ups_key=5310a4e7d0e7795209d27a8b117c8a04 # download-with: lulu --format=mp4hd2v2 [URL] - format: mp4hd container: mp4 video-profile: 高清 size: 560.3 MiB (587487098 bytes) m3u8_url: http://pl-ali.youku.com/playlist/m3u8?vid=XMzY4OTMxMTYyMA&type=mp4hdv3&ups_client_netip=756495b7&utid=31o%2FFP58k0kCAXVklbeqyp8h&ccode=0502&psid=f9aac3a8a0c035a6baa3a745a49c2487&duration=5983&expire=18000&drm_type=1&drm_device=7&ups_ts=1538813154&onOff=0&encr=0&ups_key=5310a4e7d0e7795209d27a8b117c8a04 # download-with: lulu --format=mp4hd [URL] - format: 3gphd container: mp4 video-profile: 渣清 size: 184.1 MiB (193030164 bytes) m3u8_url: http://pl-ali.youku.com/playlist/m3u8?vid=XMzY4OTMxMTYyMA&type=3gphdv3&ups_client_netip=756495b7&utid=31o%2FFP58k0kCAXVklbeqyp8h&ccode=0502&psid=f9aac3a8a0c035a6baa3a745a49c2487&duration=5984&expire=18000&drm_type=1&drm_device=7&ups_ts=1538813154&onOff=0&encr=0&ups_key=e8361d25bb6ea3bb70a8a81a94ed5b50 # download-with: lulu --format=3gphd [URL] - format: mp4sd container: mp4 video-profile: 標(biāo)清 size: 279.0 MiB (292555710 bytes) m3u8_url: http://pl-ali.youku.com/playlist/m3u8?vid=XMzY4OTMxMTYyMA&type=flvhdv3&ups_client_netip=756495b7&utid=31o%2FFP58k0kCAXVklbeqyp8h&ccode=0502&psid=f9aac3a8a0c035a6baa3a745a49c2487&duration=5984&expire=18000&drm_type=1&drm_device=7&ups_ts=1538813154&onOff=0&encr=0&ups_key=e8361d25bb6ea3bb70a8a81a94ed5b50 # download-with: lulu --format=mp4sd [URL]
開始下載mp4hd 格式,大小560M
$ lulu --format=mp4hd https://v.youku.com/v_show/id_XMzY4OTMxMTYyMA==.html? It seems that your ffmpeg is a nightly build. Please switch to the latest stable if merging failed. site: 優(yōu)酷 (Youku) title: 大話西游之大圣娶親【周星馳】【1080p】【國(guó)語中字】 stream: - format: mp4hd container: mp4 video-profile: 高清 size: 560.3 MiB (587487098 bytes) m3u8_url: http://pl-ali.youku.com/playlist/m3u8?vid=XMzY4OTMxMTYyMA&type=mp4hdv3&ups_client_netip=756495b7&utid=OVs%2FFCNJrjgCAXVklbfwfTTy&ccode=0502&psid=d311f534cb94393bef9139f8653f6a20&duration=5983&expire=18000&drm_type=1&drm_device=7&ups_ts=1538813244&onOff=0&encr=0&ups_key=328b76a03e2f827a1465b0428813b011 # download-with: lulu --format=mp4hd [URL] Downloading 大話西游之大圣娶親【周星馳】【1080p】【國(guó)語中字】.mp4 ... 0.2% ( 1.4/560.3MB) ├──────────────────────────────────────┤[ 1/16] 0 B/sl 100% (560.3/560.3MB) ├██████████████████████████████████████┤[16/16] 372 kB/s Merging video parts... 其實(shí)就是用ffmpeg下載m3u8文件,但是也經(jīng)常出問題 $ lulu -i https://v.youku.com/v_show/id_XMzY4OTMxMTYyMA==.html lulu: ????????????,201 It seems that your ffmpeg is a nightly build. Please switch to the latest stable if merging failed.
然后用annie 看看 ,注意先把bin 加入環(huán)境變量
λ annie -i https://v.youku.com/v_show/id_XMzY4OTMxMTYyMA==.html Site: 優(yōu)酷 youku.com Title: 大話西游之大圣娶親【周星馳】【1080p】【國(guó)語中字】 Type: video Streams: # All available quality [mp4hd3] ------------------- Quality: mp4hd3 1920x1080 Size: 1777.45 MiB (1863787718 Bytes) # download with: annie -f mp4hd3 ... [mp4hd2] ------------------- Quality: mp4hd2 1280x720 Size: 906.94 MiB (950999892 Bytes) # download with: annie -f mp4hd2 ... [mp4hd] ------------------- Quality: mp4hd 960x540 Size: 560.27 MiB (587487098 Bytes) # download with: annie -f mp4hd ... [flvhd] ------------------- Quality: flvhd 640x360 Size: 279.00 MiB (292555710 Bytes) # download with: annie -f flvhd ... [3gphd] ------------------- Quality: 3gphd 480x270 Size: 184.09 MiB (193030164 Bytes) # download with: annie -f 3gphd ...
go生成的可執(zhí)行文件就一個(gè)annie.exe,沒有其他依賴,只要把這個(gè)文件下載就能用,太方便了,于是開始學(xué)習(xí)下 golang
Go的主要特點(diǎn)有哪些?
-類型安全 和 內(nèi)存安全
-以非常直觀和極低代價(jià)的方案實(shí)現(xiàn) 高并發(fā)
-高效的垃圾回收機(jī)制
-快速編譯(同時(shí)解決C語言中頭文件太多的問題)
-為多核計(jì)算機(jī)提供性能提升的方案-UTF-8編碼支持
只有 package名稱為 main的包可以包含main 函數(shù)
-一個(gè)可執(zhí)行程序有且僅有 一個(gè)main 包
通過 import關(guān)鍵字來 導(dǎo)入其它非 main包
使用 大小寫 來決定該 常量、 變量、類型、接口、結(jié)構(gòu)或函數(shù) 是否可以被外部 包所調(diào) 用:根據(jù)約定,函數(shù)名首字母 小寫 即為pri vate
不可以用 數(shù)字代表true或false
其它值 類型:- array、struct、string
-引用類型:- slice、map、chan
-接口類型:inteface
-函數(shù)類型:func
全局變量的 聲明不 可以省略 var,但可使用 并行方式
局部變 量不可以使用 var () 的方式簡(jiǎn)寫,只能使用 并行方式
Go中不存在隱式轉(zhuǎn)換 ,所有類型轉(zhuǎn)換必須顯式聲明-轉(zhuǎn)換只 能發(fā) 生在兩種相互兼容 的類型之間
常量 表達(dá) 式中的 函數(shù)必須是內(nèi)置函數(shù)
在Go當(dāng)中不支持指針運(yùn) 算以及 ”->”運(yùn)算符,而直接采用”.”選擇符來 操作指針目標(biāo)對(duì) 象的成員-操作符”&”取變量地址 ,使用 ”*”通過指針間接訪問目 標(biāo)對(duì)象-默認(rèn) 值為 nil 而非 NULL
數(shù)組長(zhǎng)度也是類型的一部分,因此具有不同長(zhǎng)度的數(shù)組 為不同類型
-注意區(qū)分指向數(shù)組的指針 和指針數(shù)組
Go 函數(shù) 不支持 嵌套、重載和默認(rèn)參數(shù)
defer的執(zhí)行 方式 類似其它語言中的析構(gòu)函數(shù),在函數(shù)體執(zhí)行結(jié)束后按照調(diào)用順序的相反順序逐個(gè)執(zhí)行
-即使函數(shù)發(fā)生嚴(yán)重 錯(cuò)誤也會(huì)執(zhí)行-支持匿名函數(shù)的調(diào)用-常用于資源 清理、文件關(guān)閉、解鎖以及記 錄時(shí)間等 操作
-通過與 匿名函數(shù)配 合可在return之后修改函數(shù) 計(jì)算結(jié)果
-如果函數(shù)體內(nèi)某個(gè)變量作為defer時(shí)匿名函數(shù)的參數(shù),則在定義defer時(shí)即已 經(jīng)獲得了拷貝,否則則 是引用某個(gè)變 量的 地址
-Go 沒有異常機(jī)制,但有 panic/recover 模式來處理錯(cuò)誤
-Panic 可以在任何地方引發(fā), 但reco ver只有在defer調(diào)用的 函數(shù) 中有效
然后熟悉語法,說到這個(gè),簡(jiǎn)直奇葩,跟PHP py完全不是一個(gè)套路,一個(gè)單引號(hào) 雙引號(hào)混了就失敗,先定義package ,如果不是需要執(zhí)行的編譯文件,不能為main ,比如learn/study/test.php package study
run.go import learn/study import導(dǎo)入的是目錄 ,導(dǎo)入的包如果不用還不行,定義變量需要指定類型 ,比如var a int =3 const b string = "abc" type long float64
var c byte="a"
這里要說下字符和字符串類型 ,字符是單個(gè)字符,用單引號(hào),字符串是多個(gè)字符組成,用雙引號(hào),不能混用, 這的奇葩語法。
src 存放源代碼(比如:.go .c .h .s等)
pkg 編譯后生成的文件(比如:.a)
bin 編譯后生成的可執(zhí)行文件(為了方便,可以把此目錄加入到 $PATH 變量中,如果有多個(gè)gopath,那么使用${GOPATH//://bin:}/bin添加所有的bin目錄)很多Go命令都依賴于此變量,例如go get命令會(huì)將獲取到的包放到GOPATH中。
如果是普通包,當(dāng)你執(zhí)行g(shù)o build之后,它不會(huì)產(chǎn)生任何文件。如果你需要在$GOPATH/pkg下生成相應(yīng)的文件,那就得執(zhí)行g(shù)o install了
如果是main包,當(dāng)你執(zhí)行g(shù)o build之后,它就會(huì)在當(dāng)前目錄下生成一個(gè)可執(zhí)行文件。如果你需要在$GOPATH/bin下生成相應(yīng)的文件,需要執(zhí)行g(shù)o install。
go build會(huì)忽略目錄下以“_”或“.”開頭的go文件。
go install 這個(gè)命令在內(nèi)部實(shí)際上分成了兩步操作:第一步是生成結(jié)果文件(可執(zhí)行文件或者.a包),第二步會(huì)把編譯好的結(jié)果移到$GOPATH/pkg或者$GOPATH/bin。
Go語言中字符串的可以使用雙引號(hào)( " )或者反引號(hào)( ` )來創(chuàng)建。 一個(gè)單一的字符可以用一個(gè)單一的rune來表示
不能使用var i bool,j string = true, "hello"進(jìn)行賦值
var myMap map[string]string // 字典聲名,聲明的map是空值,需要用make()創(chuàng)建
myMap = make(map[string]string)
// 匿名函數(shù)直接執(zhí)行, 直接在函數(shù)定義后面加上參數(shù)即可
func(x,y int)int{
return x+y
}(2,3) // 傳入?yún)?shù)2,3運(yùn)行
// 匿名函數(shù)賦值
f := func(x,y int)int{
return x+y
}
type Myint int
func (m Myint)Less(b Myint) bool{
return m < b
}
var a Myint = 1
if a.Less(2){ // 對(duì)天顯示的類型2會(huì)自動(dòng)處理成相應(yīng)類型
// do something
}
var v1 interface{} = ...
switch v := v1.(type) {
case int:
// v為 int
case string:
// v為 string
//...
}
value, ok := tes["a"].(string) // "abc", true
len(s) 字符串s中的字節(jié)數(shù)
len([]rune(s)) 字符串s中字符的個(gè)數(shù),可以使用更快的方法utf8.RuneCountInString()
[ ]rune(s) 將字符串s轉(zhuǎn)換為一個(gè)unicode值組成的串
string(chars) chars類型是[]rune或者[]int32, 將之轉(zhuǎn)換為字符串
[ ]byte(s) 無副本的將字符串s轉(zhuǎn)換為一個(gè)原始的字節(jié)的切片數(shù)組,不保證轉(zhuǎn)換的字節(jié)是合法的UTF-8編碼字節(jié) &用于取地址,*用于解引用,也就是獲取指針指向的值。 數(shù)組是一個(gè)定長(zhǎng)的序列,其中的元素類型相同。多維數(shù)組可以簡(jiǎn)單地使用自身為數(shù)組的元素來創(chuàng)建。 數(shù)組是按值傳遞的(即是傳遞的副本),而切片是引用類型,傳遞切片的成本非常小,而且是不定長(zhǎng)的。而且數(shù)組是定長(zhǎng)的,而切片可以調(diào)整長(zhǎng)度。
x := int16(2345) // 聲明一個(gè)類型為int16的整數(shù),其值為2345
y := int32(x) // 將int16類型的整數(shù)轉(zhuǎn)換為int32類型
a := uint16(6500) // 聲明一個(gè)類型為uint16類型的整數(shù)
b := int16(a) // 轉(zhuǎn)換為int16類型,雖然能轉(zhuǎn)換成功,但是由于6500超過in16類型的范圍,會(huì)導(dǎo)致結(jié)果錯(cuò)誤,b的值為 -536
type StringsSlice []string 將[]string(string類型的切片)聲明為StringSlice類型。
interface{} 類型表示一個(gè)空接口,任何類型都滿足空接口。也就是說 interface{} 類型的值可以用于表示任意 Go 語言類型的值。
var i interface{} = 99 // 創(chuàng)建一個(gè)interface{}類型,其值為99
var s interface{} = []string{"left", "right"} j := i.(int) // 我們假設(shè)i是兼容int類型,并使用類型斷言將其轉(zhuǎn)換為int類型 Go 編譯器不允許聲明導(dǎo)入某個(gè)包卻不使用。下劃線讓編譯器接受這類導(dǎo)入,并且調(diào)用對(duì)應(yīng)包內(nèi)的所有代碼文件里定義的init函數(shù)。
結(jié)構(gòu)體來實(shí)現(xiàn)接口 通過接口調(diào)用 var name interface{}可表示任意類型 name=1 name.(int) name="a" switch name.(type) 類型斷言 接口是方法的集合 go install m.go 安裝到$gobin 目錄 ,然后可以直接運(yùn)行生成的文件 go get -u github.com/tet 更新代碼 五大受損,
main 函數(shù)是main包才定義的,而且不能手動(dòng)調(diào)用,在init后執(zhí)行,相當(dāng)PHP的構(gòu)造函數(shù) ,但是沒有參數(shù)和返回值,一個(gè)簡(jiǎn)單的demo
package main import fm "fmt" var d =1 const ( // 常量組 a, b = 10, 100 c bool = false ) func main() { power := getPower()//函數(shù)內(nèi)才能不用var聲明變量 name:="test"http://下面沒有用到還會(huì)失敗!!!,但是全局變量a不會(huì) fm.Printf(" power is over %d ",power) } func getPower() int { return 9001 }
go run test.go
程序正常退出的代碼為 0 即 Program exited with code 0;如果程序因?yàn)楫惓6唤K止,則會(huì)返回非零值,如:1。這個(gè)數(shù)值可以用來測(cè)試是否成功執(zhí)行一個(gè)程序。
一些常用的命令
go build 編譯并安裝自身包和依賴包,比如window生成EXE文件
go install 安裝自身包和依賴包,安裝到pkg目錄
gofmt –w program.go 會(huì)格式化該源文件的代碼然后將格式化后的代碼覆蓋原始內(nèi)容, 有了這個(gè)不用擔(dān)心PHP一樣的帶風(fēng)格混亂
go doc package 獲取包的文檔注釋
當(dāng)標(biāo)識(shí)符(包括常量、變量、類型、函數(shù)名、結(jié)構(gòu)字段等等)以一個(gè)大寫字母開頭,如:Group1,那么使用這種形式的標(biāo)識(shí)符的對(duì)象就可以被外部包的代碼所使用(客戶端程序需要先導(dǎo)入這個(gè)包),這被稱為導(dǎo)出(像面向?qū)ο笳Z言中的 public);標(biāo)識(shí)符如果以小寫字母開頭,則對(duì)包外是不可見的,但是他們?cè)谡麄€(gè)包的內(nèi)部是可見并且可用的(像面向?qū)ο笳Z言中的 private )。
go居然這樣實(shí)現(xiàn)面向?qū)ο螅。。。?br>break 只是退出當(dāng)前的循環(huán)體,而 return 語句提前對(duì)函數(shù)進(jìn)行返回,不會(huì)執(zhí)行后續(xù)的代碼。
package表示源碼所屬的代碼包 * 要生成GO語言可執(zhí)行程序,必須要有main的package包,且必須在該包下有main()函數(shù)
同一路徑下只能存在一個(gè)package**,一個(gè)package可以拆分成多個(gè)源文件組成
操作符 "&" 取變量地址,"*" 透過指針訪問目標(biāo)對(duì)象,關(guān)鍵字 defer 用于注冊(cè)延遲調(diào)用。這些調(diào)用直到 return 前才被執(zhí)行,還有數(shù)組,slice 沒來得及學(xué),真的有點(diǎn)難,下次再說了。
包管理工具 govendor go get -u -v github.com/kardianos/govendor govendor init govendor add +external 第三方下載包的工具: gopm, 這個(gè)工具解決的問題是: go get 一般是從 github 服務(wù)器, 或者 google 服務(wù)器上下載第三方庫(kù), 所以有時(shí)候網(wǎng)速慢,或者下載不成功 go get -u github.com/gpmgo/gopm 再使用 gopm 下載第三方庫(kù): gopm get -g -v ** 固定長(zhǎng)度列表在Golang 里稱之為數(shù)組.
長(zhǎng)度不固定的里稱之為切片,值傳遞 一般獲取值: func (m MyExample) GetAttrName()string
指針傳遞一般改變值: func (m *MyExample) SetAttrAge(newAge int) 值傳遞和指針傳遞針對(duì)的是函數(shù)的傳入?yún)?shù)究竟是拷貝入?yún)⒌闹颠M(jìn)行操作還是拷貝入?yún)⒌膬?nèi)存地址,帶來的效果就是一個(gè)能改變傳入的參數(shù)的值,一個(gè)不能改變傳入?yún)?shù)的值。這兩個(gè)函數(shù)沒有入?yún)⒑头祷刂?br>一個(gè)工程有且只有一個(gè) main 函數(shù)作為程序的主入口
一個(gè)工程可以有多個(gè)init 函數(shù),執(zhí)行順序和包的導(dǎo)入順序相關(guān)
同一數(shù)據(jù)類型的集合可以使用下面的變量聲明方式 var Infor map[string]string 單一的數(shù)據(jù)類型可以使用 變量聲明的方式var Number int 表示不同的數(shù)據(jù)類型的集合 結(jié)構(gòu)體
結(jié)構(gòu)體可以用來表示不同的數(shù)據(jù)類型的集合, 同時(shí)可以表示用戶自定義類型。 結(jié)構(gòu)體可以當(dāng)做是一種數(shù)據(jù)類型type Name struct{}
var Infor Name 一般都默認(rèn)函數(shù)的最后一個(gè)返回值是 err。type InformationWithLabel struct {
Name string `json:"name"` Age int `json:"age"`
} func example(arg int) (int, error) {
return arg + 1, nil
} func Errorf(format string, a ...interface{}) error {
return errors.New(Sprintf(format, a...))
} 需要強(qiáng)制退出程序,可以使用 panic panic(nil) recover 可以接收返回的異常信息,通常和 defer 一起使用 golang 中,使用到的包需要導(dǎo)入,不使用的包導(dǎo)入,編譯過程會(huì)報(bào)錯(cuò)。這一點(diǎn)和 python 很不一樣。 即以GOPATG/src 為基本路徑導(dǎo)入完整路徑即可 接口在 go 語言中是一系列方法的集合 一個(gè)結(jié)構(gòu)體實(shí)現(xiàn)了接口要求的所有的方法(方法的參數(shù)和返回值一致),那么就說這個(gè)結(jié)構(gòu)體實(shí)現(xiàn)了這個(gè)接口 內(nèi)置函數(shù) new 按指定類型分配零值內(nèi)存, 返回的是一個(gè)指針。漢字轉(zhuǎn)拼音https://github.com/mozillazg/... https://github.com/mozillazg/... .(type) 只在 switch 語句里才能使用。空接口在 go 里,可以當(dāng)成任意類型,意味著,比如你的函數(shù)或者方法不知道傳入的參數(shù)的類型,可以直接定義為 interface{}
實(shí)踐Go語言生成二維碼是如此簡(jiǎn)單
go get github.com/skip2/go-qrcode 下載源碼
vi qrcode.go package main import "github.com/skip2/go-qrcode" func main() { qrcode.WriteFile("http://www.flysnow.org/",qrcode.Medium,256,"./blog_qrcode.png") }
go run qrcode.go
推薦教程文章:
learn-go-with-tests
https://studygolang.gitbook.i...
https://zhuanlan.zhihu.com/p/...
Go名庫(kù)講解https://github.com/Unknwon/go...
Go語言實(shí)戰(zhàn)筆記 https://zhuanlan.zhihu.com/go...
命令行 https://github.com/sbinet/igo
golang 面試題 https://zhuanlan.zhihu.com/p/... https://yushuangqi.com/blog/2...
記錄學(xué)習(xí)過程 https://zhuanlan.zhihu.com/c_...
https://github.com/chai2010/a...
https://github.com/avelino/aw...
https://github.com/golang-chi...
https://github.com/Unknwon/go...
Golang 中文學(xué)習(xí)資料 https://go.wuhaolin.cn/
https://juejin.im/entry/58bfa...
https://www.v2ex.com/t/476425...
https://golangcaff.com/
Golang做了一個(gè)命令行貪吃蛇游戲 https://zhuanlan.zhihu.com/p/...
Golang 學(xué)習(xí)筆記一 https://zhuanlan.zhihu.com/p/...
Golang學(xué)習(xí) https://zhuanlan.zhihu.com/p/...
《Go 學(xué)習(xí)筆記》 https://hacpai.com/article/14...
在線ide https://wide.b3log.org/login https://wide.b3log.org/playgr...
Go 標(biāo)準(zhǔn)庫(kù)中文文檔http://cngolib.com/
Golang 速查表 https://wuyin.io/2018/06/11/g...
https://www.imooc.com/code/8247
https://golangcaff.com/docs/t...
有哪有優(yōu)秀的golang庫(kù)? https://www.zhihu.com/questio...
官網(wǎng):https://awesome-go.com/
官網(wǎng):https://golanglibs.com/ https://gocn.vip/
用 Golang 來編寫 cli 程序吧 https://zhuanlan.zhihu.com/p/...
golang新手容易犯的三個(gè)錯(cuò)誤 https://zhuanlan.zhihu.com/p/...
為什么用golang作為游戲服務(wù)端的開發(fā)語言,它的并發(fā)性如何?golang有什么優(yōu)點(diǎn)? https://www.zhihu.com/questio...
我們說Golang牛逼都在說些什么? https://zhuanlan.zhihu.com/p/...
怎么學(xué)習(xí) Golang? https://www.zhihu.com/questio...
如何從 PHP 過渡到 Golang? https://www.zhihu.com/questio...
golang 面試題 https://zhuanlan.zhihu.com/p/...
如果你是一個(gè)Golang面試官,你會(huì)問哪些問題? https://www.zhihu.com/questio...
golang面試筆試題(第二版) https://zhuanlan.zhihu.com/p/...
總結(jié)的一些語法和 Go 特點(diǎn) https://github.com/a8m/go-lan...
Golang 介紹及踩坑系列之三 https://zhuanlan.zhihu.com/p/...
為互聯(lián)網(wǎng)IT人打造的中文版awesome-go https://github.com/hackstoic/...
轉(zhuǎn)golang開發(fā),需滿足哪些技能 https://www.zhihu.com/questio...
你見過哪些令你瞠目結(jié)舌的Golang代碼技巧? https://www.zhihu.com/questio...
我的golang學(xué)習(xí)筆記 https://zhuanlan.zhihu.com/p/...
Golang 爬蟲上手指南 https://zhuanlan.zhihu.com/p/...
GoLang基礎(chǔ)語法 https://zhuanlan.zhihu.com/p/...
Golang 讀寫 Excel https://zhuanlan.zhihu.com/p/...
記錄我的Go語言學(xué)習(xí)歷程 https://github.com/xx19941215...
go cheatsheet https://devhints.io/go
https://github.com/wuxiaoxiao... https://github.com/wuxiaoxiao... https://github.com/wuxiaoxiaoshen/JianShu https://www.bilibili.com/vide...
視頻教程:
后端工程師攻略 https://www.bilibili.com/vide...
https://study.163.com/course/...
https://www.bilibili.com/vide...
http://edu.51cto.com/center/c...
https://www.bilibili.com/vide...
20個(gè)小時(shí)快速入門go語言 https://www.bilibili.com/vide...
go語言與區(qū)塊鏈教程輕松搞定Golanghttps://www.bilibili.com/vide...
Go 語言教程 【Go 編程基礎(chǔ)】 https://www.bilibili.com/vide...
Go 語言基礎(chǔ)實(shí)戰(zhàn) https://www.bilibili.com/vide...
GO實(shí)現(xiàn)千萬級(jí)WebSocket消息推送服務(wù)https://www.imooc.com/learn/1025
20小時(shí)快速入門Go語言 https://study.163.com/course/...
https://www.imooc.com/video/1...
Go語言編程源代碼 https://github.com/shiyanlou/...
【編程開發(fā)】TCP-IP基礎(chǔ)概述及IP地址子網(wǎng)劃分https://www.bilibili.com/vide...
【王道考研】數(shù)據(jù)結(jié)構(gòu) 知識(shí)點(diǎn)+習(xí)題+綜合真題(完結(jié)) https://www.bilibili.com/vide...
Go語言Web開發(fā)Beego框架深入淺出【黑馬程序員出品】 https://www.bilibili.com/vide...
后端工程師攻略 -- 06-回顧總結(jié)https://www.bilibili.com/vide...
http://www.52studyit.com/ http://www.maiziedu.com/
最后,學(xué)習(xí)之路,路漫漫其修遠(yuǎn)兮。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/42589.html
摘要:也可以是某個(gè)操作的名字標(biāo)簽,稱為偽目標(biāo)前置條件,這一項(xiàng)是可選參數(shù)。明明只是執(zhí)行命令,為什么會(huì)打印到標(biāo)準(zhǔn)輸出上了原因默認(rèn)會(huì)打印每條命令,再執(zhí)行。 Golang Gin實(shí)踐 番外 請(qǐng)入門 Makefile 原文地址:Golang Gin實(shí)踐 番外 請(qǐng)入門 Makefile 前言 含一定復(fù)雜度的軟件工程,基本上都是先編譯 A,再依賴 B,再編譯 C...,最后才執(zhí)行構(gòu)建 如果每次都人為編排,...
摘要:類型說明根據(jù)中的說明,數(shù)據(jù)類型是用來存儲(chǔ)數(shù)據(jù)的。它們幾乎接受完全相同的值集合作為輸入。該結(jié)構(gòu)是非強(qiáng)制的,但是有一個(gè)可預(yù)測(cè)的結(jié)構(gòu)會(huì)使集合的查詢更容易。如中,表示在和這兩個(gè)位置出現(xiàn)過,在中這些位置實(shí)際上就是元組的行號(hào),包括數(shù)據(jù)塊以及。 json 類型 說明 根據(jù)RFC 7159中的說明,JSON 數(shù)據(jù)類型是用來存儲(chǔ) JSON(JavaScript Object Notation)數(shù)據(jù)的。這...
閱讀 1072·2021-11-25 09:43
閱讀 695·2021-11-22 14:45
閱讀 3815·2021-09-30 09:48
閱讀 1059·2021-08-31 09:41
閱讀 1969·2019-08-30 13:52
閱讀 1975·2019-08-30 11:24
閱讀 1340·2019-08-30 11:07
閱讀 948·2019-08-29 12:15