亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于Go語言搭建靜態(tài)文件服務(wù)器的詳細(xì)教程

 更新時間:2024年10月21日 09:33:39   作者:愛看書的小沐  
Go 是一個開源的編程語言,它能讓構(gòu)造簡單、可靠且高效的軟件變得容易,本文給大家介紹了基于Go語言搭建靜態(tài)文件服務(wù)器的詳細(xì)教程,文中通過圖文和代碼講解的非常詳細(xì),需要的朋友可以參考下

1、簡介

https://golang.google.cn/

Go語言誕生于2007年9月20日。

Go 是一個開源的編程語言,它能讓構(gòu)造簡單、可靠且高效的軟件變得容易。

Go是從2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持開發(fā),后來還加入了Ian Lance Taylor, Russ Cox等人,并最終于2009年11月開源,在2012年早些時候發(fā)布了Go 1穩(wěn)定版本?,F(xiàn)在Go的開發(fā)已經(jīng)是完全開放的,并且擁有一個活躍的社區(qū)。

語法簡單 Go語言在自由度和靈活度上做了取舍,以此換來了更好的維護(hù)性和平滑的學(xué)習(xí)曲線。
部署友好 Go靜態(tài)編譯后的二進(jìn)制文件不依賴額外的運行環(huán)境,編譯速度也非常快。
交叉編譯 Go僅需要在編譯時簡單設(shè)置兩個參數(shù),就可以編譯出能在其它平臺上運行的程序
天然并發(fā) Go語言對于并發(fā)的支持是純天然的,僅需一個關(guān)鍵字,就可以開啟一個異步協(xié)程。
垃圾回收 Go有著優(yōu)秀的GC性能,大部分情況下GC延時都不會超過1毫秒。
豐富的標(biāo)準(zhǔn)庫 從字符串處理到源碼AST解析,功能強大且豐富的標(biāo)準(zhǔn)庫是Go語言堅實的基礎(chǔ)。
完善的工具鏈 Go有著完善的開發(fā)工具鏈,涵蓋了編譯,測試,依賴管理,性能分析等方方面面。

2、安裝

https://golang.google.cn/dl/

在這里插入圖片描述

在這里插入圖片描述

2.1 安裝版

在這里插入圖片描述

2.2 壓縮版

在這里插入圖片描述

在這里插入圖片描述

配置環(huán)境變量:

GOPATH=E:\Test\go_project
GOROOT=E:\Test\go1.23.2.windows-amd64\go
PATH += E:\Test\go1.23.2.windows-amd64\go\bin

在這里插入圖片描述

測試是否配置成功:

go version

在這里插入圖片描述

3、基本操作

3.1 go run

編譯完成并馬上運行 Go 程序。go run 只支持屬于 main 包的一個或多個文件作為參數(shù),不然是不能進(jìn)行編譯的。

go run main.go
# or
go run -n main.go 

在這里插入圖片描述

3.2 go build

編譯指定的源文件、軟件包和其他依賴,但是不會在編譯后執(zhí)行二進(jìn)制文件。
go build 和 go run 在編譯過程中其實是差不多的,不同之處是 go build 會生成編譯好二進(jìn)制文件并刪掉編譯過程產(chǎn)生的臨時目錄。若沒有-o 指定文件名,則和當(dāng)前目錄名一致。

go build main.go
# or
go build -x main.go

在這里插入圖片描述

3.3 go install

編譯并安裝源文件、軟件包,即把編譯后的文件(可執(zhí)行二進(jìn)制文件、歸檔文件等)安裝到指定的目錄中。將編譯后的文件(可執(zhí)行二進(jìn)制文件、歸檔文件等)安裝到指定的目錄中。若設(shè)置了環(huán)境變量 GOBIN ,則把二進(jìn)制可執(zhí)行文件移到該目錄。若禁用 Go modules 則放到 G O P A T H / p k g / GOPATH/pkg/ GOPATH/pkg/GOOS_$GOARCH下。

go install -x main.go

在這里插入圖片描述

3.4 go env

當(dāng)你安裝的GO的語言版本大于1.13的時候,直接使用go env -w命令就行了.

go env -w GOPROXY=https://goproxy.io,direct
# Set environment variable allow bypassing the proxy for selected modules
go env -w GOPRIVATE=*.corp.example.com
go env -w GO111MODULE=on

使用go env環(huán)境變量在不同操作系統(tǒng)(Mac、Linux、Windows)之間交叉編譯64位Go應(yīng)用程序。通過設(shè)置CGO_ENABLED、GOOS和GOARCH,可以在本地構(gòu)建目標(biāo)平臺的可執(zhí)行文件,簡化了部署流程,避免了將整個項目上傳到服務(wù)器的需要。

Windows下編譯Mac, Linux平臺的64位可執(zhí)行程序:

go env -w CGO_ENABLED=0 GOOS=darwin3 GOARCH=amd64 
go env -w CGO_ENABLED=0 GOOS=linux GOARCH=amd64 

Linux下編譯Mac, Windows平臺的64位可執(zhí)行程序:

go env -w CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 
go env -w CGO_ENABLED=0 GOOS=windows GOARCH=amd64 

Mac下編譯Linux, Windows平臺的64位可執(zhí)行程序:

go env -w CGO_ENABLED=0 GOOS=linux GOARCH=amd64
go env -w CGO_ENABLED=0 GOOS=windows GOARCH=amd64

3.5 go module

go module是go官方自帶的go依賴管理庫,在1.13版本正式推薦使用。默認(rèn)值為空,即go判斷開不開啟module的依據(jù)是看當(dāng)前項目的根目錄下有沒有g(shù)o.mod文件,當(dāng)然我們也可手動更改為 on(全部開啟)/off(全部不開啟,不建議):

go env -w GO111MODULE=on

go env -w GOPATH=D:\Golang1.19\gopath

go env -w GOCACHE=D:\Golang1.19\gopath\go-build-cache

4、文件服務(wù)器

4.1 filebrowser

https://github.com/filebrowser/filebrowser

在這里插入圖片描述

4.2 gohttpserver

https://github.com/codeskyblue/gohttpserver

在這里插入圖片描述

輸入如下編譯命令:

go build

生成exe文件如下:

在這里插入圖片描述

執(zhí)行exe如下:

在這里插入圖片描述

瀏覽器訪問如下:

在這里插入圖片描述

4.3 goFile

https://github.com/csznet/goFile

在這里插入圖片描述

go build

生成exe文件如下:

在這里插入圖片描述

瀏覽器訪問如下:

在這里插入圖片描述

5、FAQ

5.1 go.mod 為空

go: go.mod file not found in current directory or any parent directory. ‘go get’ is no longer supported outside a module.
答:執(zhí)行如下命令即可:

go mod init mod

使用go env查看配置信息:

go env

在這里插入圖片描述

5.2 超時

換個代理即可:

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
set GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
# 設(shè)置不走 proxy 的私有倉庫,多個用逗號相隔
go env -w GOPRIVATE=*.corp.example.com
go get -u gorm.io/gorm

結(jié)語

以上就是基于Go語言搭建靜態(tài)文件服務(wù)器的詳細(xì)教程的詳細(xì)內(nèi)容,更多關(guān)于Go搭建靜態(tài)文件服務(wù)器的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • golang?基于?mysql?簡單實現(xiàn)分布式讀寫鎖

    golang?基于?mysql?簡單實現(xiàn)分布式讀寫鎖

    這篇文章主要介紹了golang?基于mysql簡單實現(xiàn)分布式讀寫鎖,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • 一文教你如何快速學(xué)會Go的切片和數(shù)組數(shù)據(jù)類型

    一文教你如何快速學(xué)會Go的切片和數(shù)組數(shù)據(jù)類型

    數(shù)組是屬于同一類型的元素的集合。切片是數(shù)組頂部的方便、靈活且功能強大的包裝器。本文就來和大家聊聊Go中切片和數(shù)組的使用,需要的可以參考一下
    2023-03-03
  • Go構(gòu)建器模式構(gòu)建復(fù)雜對象方法實例

    Go構(gòu)建器模式構(gòu)建復(fù)雜對象方法實例

    本文介紹了構(gòu)建器模式,如何通過構(gòu)建器對象構(gòu)建復(fù)雜業(yè)務(wù)對象的方法實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Go語言中兩個比較流行的緩存庫使用示例

    Go語言中兩個比較流行的緩存庫使用示例

    緩存是計算機科學(xué)中的一個重要概念,設(shè)想某個組件需要訪問外部資源,它向外部源請求資源,接收并使用資源,這些步驟都需要花費時間,下面這篇文章主要給大家介紹了關(guān)于Go語言中兩個比較流行的緩存庫使用的相關(guān)資料,需要的朋友可以參考下
    2024-04-04
  • Golang在Mac、Linux、Windows下如何交叉編譯的實現(xiàn)

    Golang在Mac、Linux、Windows下如何交叉編譯的實現(xiàn)

    這篇文章主要介紹了Golang在Mac、Linux、Windows下如何交叉編譯的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Golang 操作TSV文件的實戰(zhàn)示例

    Golang 操作TSV文件的實戰(zhàn)示例

    本文主要介紹了Golang 操作TSV文件的實戰(zhàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 在?Go?語言中使用?regexp?包處理正則表達(dá)式的操作

    在?Go?語言中使用?regexp?包處理正則表達(dá)式的操作

    正則表達(dá)式是處理字符串時一個非常強大的工具,而?Go?語言的?regexp?包提供了簡單而強大的接口來使用正則表達(dá)式,本文將介紹如何在?Go?中使用?regexp?包來編譯和執(zhí)行正則表達(dá)式,以及如何從文本中匹配和提取信息,感興趣的朋友一起看看吧
    2023-12-12
  • Go json omitempty如何實現(xiàn)可選屬性

    Go json omitempty如何實現(xiàn)可選屬性

    在Go語言中,使用`omitempty`可以幫助我們在進(jìn)行JSON序列化和反序列化時,忽略結(jié)構(gòu)體中的零值或空值,本文介紹了如何通過將字段類型改為指針類型,并在結(jié)構(gòu)體的JSON標(biāo)簽中添加`omitempty`來實現(xiàn)這一功能,例如,將float32修改為*float32
    2024-09-09
  • golang flag簡單用法

    golang flag簡單用法

    本篇文章介紹了golang flag包的一個簡單的用法,希望通過一個簡單的實例,能讓大家了解它的用法,從中獲得啟發(fā)
    2018-09-09
  • golang使用http client發(fā)起get和post請求示例

    golang使用http client發(fā)起get和post請求示例

    這篇文章主要介紹了golang使用http client發(fā)起get和post請求示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02

最新評論