W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
《Go語言101》中的系列文章主要著墨于Go語法和語義。 更多和Go相關的話題并沒有在《Go語言101》中詳盡解釋。 本文將對這些話題做一個簡單的介紹,并提供一些鏈接供讀者自行探索。
我們可以使用Go官方工具鏈中的go test
命令來運行單元測試和基準測試。 測試源文件名必須以_test.go
結尾。 Go官方工具鏈也支持程序性能分析。 請閱讀下列文章獲取詳情:
gccgo是Go核心團隊維護開發(fā)的另一款Go編譯器。 它的主要目的是為了驗證標準編譯器(gc)的正確性。 我們可以在go run
、go build
和go install
等命令中使用選項-compiler=gccgo
來指定使用gccgo編譯器。 此選項需要安裝gccgo
軟件包才能起作用。 gccgo命令也可單獨運行。
go/*
標準庫包提供Go源文件解析相關的功能。這些庫包對于開發(fā)各種Go源代碼分析工具很有幫助。 請閱讀Go代碼分析和這些庫包的文檔來獲取如何使用這些庫包中提供的功能。
我們可以使用syscall
標準庫包中的函數(shù)來進行系統(tǒng)調(diào)用。 注意此標準庫包和其它標準庫包不同,它其中的函數(shù)是和具體操作系統(tǒng)相關的。
Go函數(shù)可以使用Go匯編語言來編寫。Go匯編是一種跨平臺(盡管并非100%)的匯編語言。 Go匯編匯編常用來實現(xiàn)一些對性能要求很高的函數(shù)。
更多詳情,請閱讀下列文章:
通過cgo機制,我們可以在Go代碼中調(diào)用C代碼,或者反之。 請閱讀下列鏈接獲取詳情:
通過C代碼做為橋梁,我們也可以使C++和Go代碼能夠相互調(diào)用。
注意,cgo的使用將給跨平臺Go項目的維護開發(fā)帶來一些麻煩。另外Go和C之間互調(diào)不如Go-Go和C-C調(diào)用高效。
標準Go編譯器支持跨平臺編譯。通過設置GOOS
和GOARCH
兩個環(huán)境變量,我們可以使用go build
命令在Linux系統(tǒng)中編譯出Windows和Mac程序,反之亦然。 請閱讀下面的代碼獲取詳情:
特別地,自從G0 1.11,標準Go編譯器開始支持WebAssembly做為一種新的架構。請閱讀此篇維基文章獲取詳情。
標準Go編譯器支持若干編譯器指示。 一個編譯器指示以注釋的形式//go:DirectiveName args
出現(xiàn)。 比如我們可以使用go:generate編譯器指示來生成代碼; 或者使用Go 1.16版本引入go:embed編譯器指示來內(nèi)嵌數(shù)據(jù)文件。
我們可以使用構建編譯約束(或稱標簽)來讓編譯器選擇性地忽略某些源文件。 選擇標簽可以出現(xiàn)在源代碼文件中的最頂部,也可以出現(xiàn)在源代碼文件名(不包含.go
后綴)的結尾(并用下劃線分隔開來)。 注意:Go官方工具鏈1.17引入的新的//go:build
指示將逐漸替代// +build
構建編譯約束。
Go官方工具鏈中的go build
命令支持更多的編譯模式。 運行go help buildmode
可以列出所有支持的模式,或者查看官方文檔來查看這些模式的解釋說明。 除了最常用的default模式,plugin(插件)模式可能是另一種用的較多的模式。 我們可以使用plugin
標準庫包中的函數(shù)來加載和使用Go插件。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: