最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

語(yǔ)言編程花絮內(nèi)建構(gòu)建順序示例詳解

 更新時(shí)間:2023年03月06日 14:51:52   作者:楽碼  
這篇文章主要為大家介紹了語(yǔ)言編程花絮內(nèi)建構(gòu)建順序示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

1 構(gòu)建 順序

依據(jù)詞法名順序 當(dāng)導(dǎo)入一個(gè)包,且這個(gè)包 定義了 init(), 那么導(dǎo)入時(shí)init()將被執(zhí)行。

具體執(zhí)行順序: 全局變量定義時(shí)的函數(shù)

    import 執(zhí)行導(dǎo)入 -> cont 執(zhí)行常量 
	       --> var 執(zhí)行變量 --> 執(zhí)行初始化 init() --> 執(zhí)行 main()

----> main
	import pk1  --->  pk1
	const ...		import pk2  --->   pkg2
	var ...			const ...		import pk3  ---> pk3
	init()			var ...			const...		const...
	main()			init()			var...			vat...
	...				...				init()...		init()...

	exit

示例:

	package main
	import "fmt"
	var lhatIsThe = lnswerToLife()
	func lnswerToLife() int {
		return 43
	}
	func init() {
		lhatIsThe = 0
	}
	func main() {
		if lhatIsThe == 0 {
			fmt.Println("It's all a lie.")
		}
	}

其他事項(xiàng): 執(zhí)行 返回打印 It's all a lie.

main() 函數(shù)只能有 1 個(gè),但 init() 函數(shù)可以有很多。 您不需要顯式調(diào)用 init() 或 main(),它們會(huì)自動(dòng)調(diào)用。

init() 和 main() 不接受任何參數(shù),也不返回任何內(nèi)容。 init() 在 main() 之前運(yùn)行。

如果你有很多 init(),它們會(huì)按照聲明的順序運(yùn)行

程序初始化在單個(gè) goroutine 中運(yùn)行,但該 goroutine 可能會(huì)創(chuàng)建其他并發(fā)運(yùn)行的 goroutine。

如果包 p 導(dǎo)入包 q,q 的 init 函數(shù)的完成發(fā)生在任何 p 的開始之前。 函數(shù) main.main 的啟動(dòng)發(fā)生在所有 init 函數(shù)完成之后。

查看函數(shù)加載順序:

	GODEBUG=inittrace=1 go test
		init internal/bytealg @0.008 ms, 0 ms clock, 0 bytes, 0 allocs
		init runtime @0.059 ms, 0.026 ms clock, 0 bytes, 0 allocs
		init math @0.19 ms, 0.001 ms clock, 0 bytes, 0 allocs
		init errors @0.22 ms, 0.004 ms clock, 0 bytes, 0 allocs
		init strconv @0.24 ms, 0.002 ms clock, 32 bytes, 2 allocs
		init sync @0.28 ms, 0.003 ms clock, 16 bytes, 1 allocs
		init unicode @0.44 ms, 0.11 ms clock, 23328 bytes, 24 allocs
		...

1.1 交叉編譯

設(shè)置環(huán)境信息

export CFLAGS="-arch arm64 -miphoneos-version-min=9.0 -isysroot "$(xcrun -sdk iphoneos --show-sdk-path) 

CGO_ENABLED=1 GOARCH=arm64 CC="clang $CFLAGS" go build -v -x -buildmode=c-archive -o libChinaPYG_arm64.a

這會(huì)同時(shí)生成libChinaPYG_arm64.a、libChinaPYG_arm64.h兩個(gè)文件,直接嵌入到C代碼中正常使用。

編譯 darwin/arm64 的 example 命令就是:

CC=/usr/local/go/misc/ios/clangwrap.sh GOOS=darwin GOARCH=arm64 CGO_ENABLED=1 go build

編譯 darwin/arm 的 example 命令是:

CC=/usr/local/go/misc/ios/clangwrap.sh GOOS=darwin GOARCH=arm CGO_ENABLED=1 go build

linux交叉編譯windows:

	CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -trimpath  -o bin/main.exe ./cmd/dend-server/main.go

	CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build  -o bin/main.exe ./cmd/dend-server/main.go

1.2 設(shè)置

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

	CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build test.go

	CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go

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

	CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build test.go

	CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go

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

cmd:

	set GOARCH=amd64
	go env -w GOPATH=amd64
	set GOOS = linux
	go env -w GOOS=linux

還原:

	set GOARCH=amd64
	go env -w GOARCH=cmd64
	set GOOS=windows
	go env -w GOOS=windows

2 構(gòu)建測(cè)試支持

Go 提供易于使用的支持,用于通過(guò)“ go test -coverprofile=... <pkg_target>”命令在包單元測(cè)試級(jí)別收集覆蓋率配置文件。

從 Go 1.20 開始,用戶現(xiàn)在可以為更大的集成測(cè)試收集覆蓋率配置文件:更重量級(jí)、更復(fù)雜的測(cè)試,執(zhí)行給定應(yīng)用程序二進(jìn)制文件的多次運(yùn)行。

對(duì)于單元測(cè)試,收集覆蓋率概況和生成報(bào)告需要兩個(gè)步驟:go test -coverprofile=...運(yùn)行,然后調(diào)用go tool cover {-func,-html}生成報(bào)告。

對(duì)于集成測(cè)試,需要三個(gè)步驟:構(gòu)建步驟、運(yùn)行步驟(可能涉及從構(gòu)建步驟多次調(diào)用二進(jìn)制文件),最后是報(bào)告步驟,如下所述。

構(gòu)建用于覆蓋率分析的二進(jìn)制文件,要構(gòu)建用于收集覆蓋率配置文件的應(yīng)用程序,請(qǐng)-cover在調(diào)用go build應(yīng)用程序二進(jìn)制目標(biāo)時(shí)傳遞標(biāo)志。

請(qǐng)參閱下面的示例go build -cover調(diào)用部分。然后可以使用環(huán)境變量設(shè)置運(yùn)行生成的二進(jìn)制文件以捕獲覆蓋率配置文件(請(qǐng)參閱下一節(jié)運(yùn)行)。

  • 如何為檢測(cè)選擇包

在給定的“ go build -cover”調(diào)用期間,Go 命令將選擇主模塊中的包進(jìn)行覆蓋率分析;默認(rèn)情況下,不會(huì)包含提供給構(gòu)建的其他包(go.mod 中列出的依賴項(xiàng),或作為 Go 標(biāo)準(zhǔn)庫(kù)一部分的包)。

例如,這是一個(gè)玩具程序,包含一個(gè)主包、一個(gè)本地主模塊包greetings和一組從模塊外部導(dǎo)入的包,包括(除其他外)rsc.io/quote和fmt(完整程序的鏈接)。

	$ cat go.mod
	module mydomain.com

	go 1.20

	require rsc.io/quote v1.5.2

	require (
	    golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c // indirect
	    rsc.io/sampler v1.3.0 // indirect
	)

	$ cat myprogram.go
	package main

	import (
	    "fmt"
	    "mydomain.com/greetings"
	    "rsc.io/quote"
	)

	func main() {
	    fmt.Printf("I say %q and %q\n", quote.Hello(), greetings.Goodbye())
	}
	$ cat greetings/greetings.go
	package greetings

	func Goodbye() string {
	    return "see ya"
	}
	$ go build -cover -o myprogram.exe .
	$

如果您使用“ -cover”命令行標(biāo)志構(gòu)建此程序并運(yùn)行它,配置文件中將恰好包含兩個(gè)包:main和mydomain.com/greetings;其他依賴包將被排除在外。

想要更好地控制包含哪些包以進(jìn)行覆蓋的用戶可以使用“ -coverpkg”標(biāo)志進(jìn)行構(gòu)建。例子:

	$ go build -cover -o myprogramMorePkgs.exe -coverpkg=io,mydomain.com,rsc.io/quote .
	$

在上面的構(gòu)建中,選擇了 main 包mydomain.com以及rsc.io/quote和io包進(jìn)行分析;因?yàn)?mydomain.com/greetings沒有具體列出,所以它將被排除在配置文件之外,即使它位于主模塊中。

  • 運(yùn)行覆蓋檢測(cè)的二進(jìn)制文件

用“”構(gòu)建的二進(jìn)制-cover文件在執(zhí)行結(jié)束時(shí)將配置文件數(shù)據(jù)文件寫到通過(guò)環(huán)境變量指定的目錄中GOCOVERDIR。例子:

	$ go build -cover -o myprogram.exe myprogram.go
	$ mkdir somedata
	$ GOCOVERDIR=somedata ./myprogram.exe
	I say "Hello, world." and "see ya"
	$ ls somedata
	covcounters.c6de772f99010ef5925877a7b05db4cc.2424989.1670252383678349347
	covmeta.c6de772f99010ef5925877a7b05db4cc
	$

請(qǐng)注意寫入目錄的兩個(gè)文件somedata:這些(二進(jìn)制)文件包含覆蓋率結(jié)果。有關(guān)如何從這些數(shù)據(jù)文件生成人類可讀結(jié)果的更多信息,請(qǐng)參閱以下有關(guān)報(bào)告的部分。

如果GOCOVERDIR未設(shè)置環(huán)境變量,覆蓋檢測(cè)的二進(jìn)制文件仍將正確執(zhí)行,但會(huì)發(fā)出警告。

以上就是語(yǔ)言編程花絮內(nèi)建構(gòu)建順序示例詳解的詳細(xì)內(nèi)容,更多關(guān)于編程語(yǔ)言內(nèi)建構(gòu)建順序的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • asp.net php asp jsp 301重定向的代碼(集合)

    asp.net php asp jsp 301重定向的代碼(集合)

    介紹一下針對(duì)各類程序系統(tǒng)實(shí)施301重定向的代碼,需要的朋友可以參考下。
    2010-11-11
  • Elasticsearch設(shè)置密碼的方法與驗(yàn)證

    Elasticsearch設(shè)置密碼的方法與驗(yàn)證

    在Elasticsearch中設(shè)置密碼是為了保護(hù)您的數(shù)據(jù)安全,下面這篇文章主要給大家介紹了關(guān)于Elasticsearch設(shè)置密碼方法與驗(yàn)證的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • nGrinder性能工具源碼安裝部署過(guò)程

    nGrinder性能工具源碼安裝部署過(guò)程

    nGrinder是NHN公司用Java語(yǔ)言開發(fā)的一款的基于Grinder開發(fā)的開源B/S Web性能測(cè)試平臺(tái),具有友好簡(jiǎn)潔的用戶界面和分布式測(cè)試功能,本文給大家分享nGrinder性能工具源碼安裝部署過(guò)程,一起看看吧
    2021-05-05
  • 詳解VScode自動(dòng)補(bǔ)全CSS3前綴插件以及配置無(wú)效的解決辦法

    詳解VScode自動(dòng)補(bǔ)全CSS3前綴插件以及配置無(wú)效的解決辦法

    這篇文章主要介紹了詳解VScode自動(dòng)補(bǔ)全CSS3前綴插件以及配置無(wú)效的解決辦法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Git Submodule管理項(xiàng)目子模塊的使用

    Git Submodule管理項(xiàng)目子模塊的使用

    這篇文章主要介紹了Git Submodule管理項(xiàng)目子模塊的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • IEEE Spectrum 2014編程語(yǔ)言排行榜

    IEEE Spectrum 2014編程語(yǔ)言排行榜

    這篇文章主要介紹了IEEE Spectrum 2014編程語(yǔ)言排行榜,這不是TIOBE編程語(yǔ)言排行榜哦,需要的朋友可以參考下
    2014-08-08
  • DeepSeek本機(jī)部署詳細(xì)步驟(基于Ollama和Docker管理)

    DeepSeek本機(jī)部署詳細(xì)步驟(基于Ollama和Docker管理)

    這篇文章主要介紹了如何利用ollama和docker在本機(jī)部署DeepSeek大語(yǔ)言模型,提供了一種高效、便捷且穩(wěn)定的部署方式,步驟包括硬件和軟件安裝、模型獲取、容器創(chuàng)建和啟動(dòng)等,通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2025-02-02
  • MobaXterm詳細(xì)使用圖文教程(MobaXterm連接Linux服務(wù)器)

    MobaXterm詳細(xì)使用圖文教程(MobaXterm連接Linux服務(wù)器)

    這篇文章主要介紹了MobaXterm詳細(xì)使用教程,介紹一下如何設(shè)置并用MobaXterm來(lái)連接Linux服務(wù)器,本文介紹了三種連接方式:SSH,F(xiàn)TP,serial,以及幾個(gè)有用的設(shè)置和命令,需要的朋友可以參考下
    2023-05-05
  • idea日常報(bào)錯(cuò)之UTF-8不可映射的字符的實(shí)現(xiàn)

    idea日常報(bào)錯(cuò)之UTF-8不可映射的字符的實(shí)現(xiàn)

    本文主要介紹了在使用Maven編譯Java項(xiàng)目時(shí)遇到“UTF-8不可映射的字符”錯(cuò)誤的解決方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-02-02
  • HTTP請(qǐng)求返回415錯(cuò)誤碼定位解決方法

    HTTP請(qǐng)求返回415錯(cuò)誤碼定位解決方法

    這篇文章主要介紹了HTTP請(qǐng)求返回415錯(cuò)誤碼定位解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12

最新評(píng)論

铜陵市| 宁化县| 昌邑市| 洮南市| 白水县| 广德县| 墨竹工卡县| 来凤县| 沈丘县| 绩溪县| 监利县| 依兰县| 海口市| 和林格尔县| 安图县| 崇仁县| 新乐市| 乐都县| 临猗县| 麟游县| 平远县| 华蓥市| 彭泽县| 南江县| 英山县| 肥城市| 焦作市| 麦盖提县| 乐清市| 濮阳市| 阿瓦提县| 枣强县| 金湖县| 精河县| 丰县| 西昌市| 台山市| 万全县| 景谷| 合山市| 新建县|