🌷 博主 libin9iOak带您 Go to Golang Language.✨
🦄 个人主页——libin9iOak的博客🎐
🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺
🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐
🪁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🐥
摘要:
本文详细介绍了Go语言中包的使用和包管理的相关知识。包是组织和复用源码的基本单元,具有代码可见性。我们了解了main包、包的命名规则以及包的导入方式。同时,解释了包的初始化过程和使用外部包的方法。最后,我们介绍了GOPATH环境变量的作用和包的编译与安装。通过本文的学习,读者可以全面了解Go语言包的使用和管理,为后续的学习打下坚实的基础。
前言:
在Go语言中,包的使用是非常重要的概念。它可以帮助我们组织和复用代码,提高开发效率。本文将深入介绍包的相关知识,并帮助读者理解包的作用和使用方法。同时,我们还将讨论包管理的问题,包括导入其他包和管理外部包。通过本文的学习,读者将能够熟练地运用包来组织和管理自己的Go项目。
引言:
Go语言的包是一种强大的工具,用于组织和复用代码。通过包的导入和命名规则,我们可以将代码分成不同的模块,并通过导出和非导出标识符来控制其可见性。同时,通过合理管理外部包,我们可以借助其他开发者的优秀代码,提高开发效率。在本文中,我们将深入探讨包的使用和管理,为读者提供全面的Go语言包知识。
Go语言中包的使用
Go语言使用包(package)这种语法元素来组织源码,所有语法可见性均定义在package这个级别,与Java 、python等语言相比,这算不上什么创新,但与C传统的include相比,则是显得“先进”了许多。
下面是Go语言SDK的包结构图
├─api ├─bin ├─doc ├─lib │ └─time ├─misc │ ├─android │ ├─arm │ ├─cgo │ │ ├─errors │ │ │ └─testdata │ │ ├─fortran │ │ │ ├─helloworld │ │ │ └─testdata │ │ │ └─testprog │ │ ├─gmp │ │ ├─life │ │ │ └─testdata │ │ ├─nocgo │ │ ├─stdio │ │ │ └─testdata │ │ │ └─stdio │ │ ├─test │ │ │ ├─gcc68255 │ │ │ ├─issue20266 │ │ │ ├─issue23555a │ │ │ ├─issue23555b │ │ │ ├─issue24161arg │ │ │ ├─issue24161e0 │ │ │ ├─issue24161e1 │ │ │ ├─issue24161e2 │ │ │ ├─issue24161res │ │ │ ├─issue26213 │ │ │ ├─issue26430 │ │ │ ├─issue26743 │ │ │ ├─issue27054 │ │ │ ├─issue27340 │ │ │ ├─issue29563 │ │ │ ├─issue30527 │ │ │ ├─issue41761a │ │ │ ├─issue43639 │ │ │ ├─issue52611a │ │ │ ├─issue52611b │ │ │ ├─issue8756 │ │ │ ├─issue8828 │ │ │ ├─issue9026 │ │ │ ├─issue9400 │ │ │ ├─issue9510a │ │ │ └─issue9510b │ │ ├─testcarchive │ │ │ └─testdata │ │ │ ├─libgo │ │ │ ├─libgo2 │ │ │ ├─libgo3 │ │ │ ├─libgo4 │ │ │ ├─libgo6 │ │ │ ├─libgo7 │ │ │ ├─libgo8 │ │ │ └─p │ │ ├─testcshared │ │ │ └─testdata │ │ │ ├─go2c2go │ │ │ │ ├─go │ │ │ │ ├─m1 │ │ │ │ └─m2 │ │ │ ├─issue36233 │ │ │ ├─libgo │ │ │ ├─libgo2 │ │ │ ├─libgo4 │ │ │ ├─libgo5 │ │ │ └─p │ │ ├─testgodefs │ │ │ └─testdata │ │ ├─testplugin │ │ │ ├─altpath │ │ │ │ └─testdata │ │ │ │ ├─common │ │ │ │ └─plugin-mismatch │ │ │ └─testdata │ │ │ ├─checkdwarf │ │ │ ├─common │ │ │ ├─forkexec │ │ │ ├─host │ │ │ ├─iface │ │ │ ├─iface_a │ │ │ ├─iface_b │ │ │ ├─iface_i │ │ │ ├─issue18584 │ │ │ ├─issue18676 │ │ │ │ └─dynamodbstreamsevt │ │ │ ├─issue19418 │ │ │ ├─issue19529 │ │ │ ├─issue19534 │ │ │ ├─issue22175 │ │ │ ├─issue22295.pkg │ │ │ ├─issue24351 │ │ │ ├─issue25756 │ │ │ │ └─plugin │ │ │ ├─issue44956 │ │ │ │ └─base │ │ │ ├─issue52937 │ │ │ ├─issue53989 │ │ │ │ └─p │ │ │ ├─method │ │ │ ├─method2 │ │ │ │ └─p │ │ │ ├─method3 │ │ │ │ └─p │ │ │ ├─plugin1 │ │ │ ├─plugin2 │ │ │ ├─sub │ │ │ │ └─plugin1 │ │ │ ├─unnamed1 │ │ │ └─unnamed2 │ │ ├─testsanitizers │ │ │ └─testdata │ │ │ └─asan_linkerx │ │ │ └─p │ │ ├─testshared │ │ │ └─testdata │ │ │ ├─dep2 │ │ │ ├─dep3 │ │ │ ├─depBase │ │ │ ├─division │ │ │ ├─exe │ │ │ ├─exe2 │ │ │ ├─exe3 │ │ │ ├─execgo │ │ │ ├─explicit │ │ │ ├─gcdata │ │ │ │ ├─main │ │ │ │ └─p │ │ │ ├─global │ │ │ ├─globallib │ │ │ ├─iface │ │ │ ├─iface_a │ │ │ ├─iface_b │ │ │ ├─iface_i │ │ │ ├─implicit │ │ │ ├─implicitcmd │ │ │ ├─issue25065 │ │ │ ├─issue30768 │ │ │ │ └─issue30768lib │ │ │ ├─issue39777 │ │ │ │ ├─a │ │ │ │ └─b │ │ │ ├─issue44031 │ │ │ │ ├─a │ │ │ │ ├─b │ │ │ │ └─main │ │ │ ├─issue47837 │ │ │ │ ├─a │ │ │ │ └─main │ │ │ ├─issue58966 │ │ │ └─trivial │ │ ├─testso │ │ │ └─testdata │ │ ├─testsovar │ │ │ └─testdata │ │ └─testtls │ ├─chrome │ │ └─gophertool │ ├─ios │ ├─linkcheck │ ├─reboot │ ├─swig │ │ ├─callback │ │ └─stdio │ └─wasm ├─pkg │ ├─include │ └─tool │ └─windows_amd64 ├─SDK │ └─go1.20.3 │ ├─api │ ├─bin │ ├─doc │ ├─lib │ │ └─time │ ├─misc │ │ ├─android │ │ ├─arm │ │ ├─cgo │ │ │ ├─errors │ │ │ │ └─testdata │ │ │ ├─fortran │ │ │ │ ├─helloworld │ │ │ │ └─testdata │ │ │ │ └─testprog │ │ │ ├─gmp │ │ │ ├─life │ │ │ │ └─testdata │ │ │ ├─nocgo │ │ │ ├─stdio │ │ │ │ └─testdata │ │ │ │ └─stdio │ │ │ ├─test │ │ │ │ ├─gcc68255 │ │ │ │ ├─issue20266 │ │ │ │ ├─issue23555a │ │ │ │ ├─issue23555b │ │ │ │ ├─issue24161arg │ │ │ │ ├─issue24161e0 │ │ │ │ ├─issue24161e1 │ │ │ │ ├─issue24161e2 │ │ │ │ ├─issue24161res │ │ │ │ ├─issue26213 │ │ │ │ ├─issue26430 │ │ │ │ ├─issue26743 │ │ │ │ ├─issue27054 │ │ │ │ ├─issue27340 │ │ │ │ ├─issue29563 │ │ │ │ ├─issue30527 │ │ │ │ ├─issue41761a │ │ │ │ ├─issue43639 │ │ │ │ ├─issue52611a │ │ │ │ ├─issue52611b │ │ │ │ ├─issue8756 │ │ │ │ ├─issue8828 │ │ │ │ ├─issue9026 │ │ │ │ ├─issue9400 │ │ │ │ ├─issue9510a │ │ │ │ └─issue9510b │ │ │ ├─testcarchive │ │ │ │ └─testdata │ │ │ │ ├─libgo │ │ │ │ ├─libgo2 │ │ │ │ ├─libgo3 │ │ │ │ ├─libgo4 │ │ │ │ ├─libgo6 │ │ │ │ ├─libgo7 │ │ │ │ ├─libgo8 │ │ │ │ └─p │ │ │ ├─testcshared │ │ │ │ └─testdata │ │ │ │ ├─go2c2go │ │ │ │ │ ├─go │ │ │ │ │ ├─m1 │ │ │ │ │ └─m2 │ │ │ │ ├─issue36233 │ │ │ │ ├─libgo │ │ │ │ ├─libgo2 │ │ │ │ ├─libgo4 │ │ │ │ ├─libgo5 │ │ │ │ └─p │ │ │ ├─testgodefs │ │ │ │ └─testdata │ │ │ ├─testplugin │ │ │ │ ├─altpath │ │ │ │ │ └─testdata │ │ │ │ │ ├─common │ │ │ │ │ └─plugin-mismatch │ │ │ │ └─testdata │ │ │ │ ├─checkdwarf │ │ │ │ ├─common │ │ │ │ ├─forkexec │ │ │ │ ├─host │ │ │ │ ├─iface │ │ │ │ ├─iface_a │ │ │ │ ├─iface_b │ │ │ │ ├─iface_i │ │ │ │ ├─issue18584 │ │ │ │ ├─issue18676 │ │ │ │ │ └─dynamodbstreamsevt │ │ │ │ ├─issue19418 │ │ │ │ ├─issue19529 │ │ │ │ ├─issue19534 │ │ │ │ ├─issue22175 │ │ │ │ ├─issue22295.pkg │ │ │ │ ├─issue24351 │ │ │ │ ├─issue25756 │ │ │ │ │ └─plugin │ │ │ │ ├─issue44956 │ │ │ │ │ └─base │ │ │ │ ├─issue52937 │ │ │ │ ├─issue53989 │ │ │ │ │ └─p │ │ │ │ ├─method │ │ │ │ ├─method2 │ │ │ │ │ └─p │ │ │ │ ├─method3 │ │ │ │ │ └─p │ │ │ │ ├─plugin1 │ │ │ │ ├─plugin2 │ │ │ │ ├─sub │ │ │ │ │ └─plugin1 │ │ │ │ ├─unnamed1 │ │ │ │ └─unnamed2 │ │ │ ├─testsanitizers │ │ │ │ └─testdata │ │ │ │ └─asan_linkerx │ │ │ │ └─p │ │ │ ├─testshared │ │ │ │ └─testdata │ │ │ │ ├─dep2 │ │ │ │ ├─dep3 │ │ │ │ ├─depBase │ │ │ │ ├─division │ │ │ │ ├─exe │ │ │ │ ├─exe2 │ │ │ │ ├─exe3 │ │ │ │ ├─execgo │ │ │ │ ├─explicit │ │ │ │ ├─gcdata │ │ │ │ │ ├─main │ │ │ │ │ └─p │ │ │ │ ├─global │ │ │ │ ├─globallib │ │ │ │ ├─iface │ │ │ │ ├─iface_a │ │ │ │ ├─iface_b │ │ │ │ ├─iface_i │ │ │ │ ├─implicit │ │ │ │ ├─implicitcmd │ │ │ │ ├─issue25065 │ │ │ │ ├─issue30768 │ │ │ │ │ └─issue30768lib │ │ │ │ ├─issue39777 │ │ │ │ │ ├─a │ │ │ │ │ └─b │ │ │ │ ├─issue44031 │ │ │ │ │ ├─a │ │ │ │ │ ├─b │ │ │ │ │ └─main │ │ │ │ ├─issue47837 │ │ │ │ │ ├─a │ │ │ │ │ └─main │ │ │ │ ├─issue58966 │ │ │ │ └─trivial │ │ │ ├─testso │ │ │ │ └─testdata │ │ │ ├─testsovar │ │ │ │ └─testdata │ │ │ └─testtls │ │ ├─chrome │ │ │ └─gophertool │ │ ├─ios │ │ ├─linkcheck │ │ ├─reboot │ │ ├─swig │ │ │ ├─callback │ │ │ └─stdio │ │ └─wasm │ ├─pkg │ │ ├─include │ │ └─tool │ │ └─windows_amd64 │ ├─src │ │ ├─archive │ │ │ ├─tar │ │ │ │ └─testdata │ │ │ └─zip │ │ │ └─testdata │ │ ├─arena │ │ ├─bufio │ │ ├─builtin │ │ ├─bytes │ │ ├─cmd │ │ │ ├─addr2line │ │ │ ├─api │ │ │ │ └─testdata │ │ │ │ └─src │ │ │ │ ├─issue21181 │ │ │ │ │ ├─dep │ │ │ │ │ ├─indirect │ │ │ │ │ └─p │ │ │ │ ├─issue29837 │ │ │ │ │ └─p │ │ │ │ └─pkg │ │ │ │ ├─p1 │ │ │ │ ├─p2 │ │ │ │ ├─p3 │ │ │ │ └─p4 │ │ │ ├─asm │ │ │ │ └─internal │ │ │ │ ├─arch │ │ │ │ ├─asm │ │ │ │ │ └─testdata │ │ │ │ │ └─avx512enc │ │ │ │ ├─flags │ │ │ │ └─lex │ │ │ ├─buildid │ │ │ ├─cgo │ │ │ ├─compile │ │ │ │ └─internal │ │ │ │ ├─abi │ │ │ │ ├─abt │ │ │ │ ├─amd64 │ │ │ │ ├─arm │ │ │ │ ├─arm64 │ │ │ │ ├─base │ │ │ │ ├─bitvec │ │ │ │ ├─compare │ │ │ │ ├─coverage │ │ │ │ ├─deadcode │ │ │ │ ├─devirtualize │ │ │ │ ├─dwarfgen │ │ │ │ ├─escape │ │ │ │ ├─gc │ │ │ │ ├─importer │ │ │ │ │ └─testdata │ │ │ │ │ └─versions │ │ │ │ ├─inline │ │ │ │ ├─ir │ │ │ │ ├─liveness │ │ │ │ ├─logopt │ │ │ │ ├─loong64 │ │ │ │ ├─mips │ │ │ │ ├─mips64 │ │ │ │ ├─noder │ │ │ │ ├─objw │ │ │ │ ├─pgo │ │ │ │ ├─pkginit │ │ │ │ ├─ppc64 │ │ │ │ ├─reflectdata │ │ │ │ ├─riscv64 │ │ │ │ ├─s390x │ │ │ │ ├─ssa │ │ │ │ │ ├─testdata │ │ │ │ │ └─_gen │ │ │ │ ├─ssagen │ │ │ │ ├─staticdata │ │ │ │ ├─staticinit │ │ │ │ ├─syntax │ │ │ │ │ └─testdata │ │ │ │ ├─test │ │ │ │ │ └─testdata │ │ │ │ │ ├─gen │ │ │ │ │ ├─mysort │ │ │ │ │ ├─pgo │ │ │ │ │ │ └─inline │ │ │ │ │ └─reproducible │ │ │ │ ├─typebits │ │ │ │ ├─typecheck │ │ │ │ │ └─_builtin │ │ │ │ ├─types │ │ │ │ ├─types2 │ │ │ │ │ └─testdata │ │ │ │ │ └─local │ │ │ │ ├─walk │ │ │ │ ├─wasm │ │ │ │ └─x86 │ │ │ ├─covdata │ │ │ │ └─testdata │ │ │ ├─cover │ │ │ │ └─testdata │ │ │ │ ├─html │ │ │ │ └─pkgcfg │ │ │ │ ├─a │ │ │ │ ├─b │ │ │ │ └─main │ │ │ ├─dist │ │ │ ├─doc │ │ │ │ └─testdata │ │ │ │ ├─merge │ │ │ │ └─nested │ │ │ │ ├─empty │ │ │ │ └─nested │ │ │ ├─fix │ │ │ ├─go │ │ │ │ ├─internal │ │ │ │ │ ├─auth │ │ │ │ │ ├─base │ │ │ │ │ ├─bug │ │ │ │ │ ├─cache │ │ │ │ │ ├─cfg │ │ │ │ │ ├─clean │ │ │ │ │ ├─cmdflag │ │ │ │ │ ├─doc │ │ │ │ │ ├─envcmd │ │ │ │ │ ├─fix │ │ │ │ │ ├─fmtcmd │ │ │ │ │ ├─fsys │ │ │ │ │ ├─generate │ │ │ │ │ ├─get │ │ │ │ │ ├─help │ │ │ │ │ ├─imports │ │ │ │ │ │ └─testdata │ │ │ │ │ │ ├─android │ │ │ │ │ │ ├─illumos │ │ │ │ │ │ └─star │ │ │ │ │ ├─list │ │ │ │ │ ├─load │ │ │ │ │ ├─lockedfile │ │ │ │ │ │ └─internal │ │ │ │ │ │ └─filelock │ │ │ │ │ ├─mmap │ │ │ │ │ ├─modcmd │ │ │ │ │ ├─modconv │ │ │ │ │ │ └─testdata │ │ │ │ │ ├─modfetch │ │ │ │ │ │ ├─codehost │ │ │ │ │ │ └─zip_sum_test │ │ │ │ │ │ └─testdata │ │ │ │ │ ├─modget │ │ │ │ │ ├─modindex │ │ │ │ │ │ └─testdata │ │ │ │ │ │ └─ignore_non_source │ │ │ │ │ ├─modinfo │ │ │ │ │ ├─modload │ │ │ │ │ ├─mvs │ │ │ │ │ ├─par │ │ │ │ │ ├─robustio │ │ │ │ │ ├─run │ │ │ │ │ ├─script │ │ │ │ │ │ └─scripttest │ │ │ │ │ ├─search │ │ │ │ │ ├─str │ │ │ │ │ ├─test │ │ │ │ │ │ └─internal │ │ │ │ │ │ └─genflags │ │ │ │ │ ├─tool │ │ │ │ │ ├─trace │ │ │ │ │ ├─vcs │ │ │ │ │ ├─vcweb │ │ │ │ │ │ └─vcstest │ │ │ │ │ ├─version │ │ │ │ │ ├─vet │ │ │ │ │ ├─web │ │ │ │ │ ├─work │ │ │ │ │ └─workcmd │ │ │ │ └─testdata │ │ │ │ ├─failssh │ │ │ │ ├─mod │ │ │ │ ├─script │ │ │ │ └─vcstest │ │ │ │ ├─auth │ │ │ │ ├─bzr │ │ │ │ ├─fossil │ │ │ │ ├─git │ │ │ │ ├─go │ │ │ │ │ └─mod │ │ │ │ ├─hg │ │ │ │ └─svn │ │ │ ├─gofmt │ │ │ │ └─testdata │ │ │ ├─internal │ │ │ │ ├─archive │ │ │ │ │ └─testdata │ │ │ │ │ └─mycgo │ │ │ │ ├─bio │ │ │ │ ├─browser │ │ │ │ ├─buildid │ │ │ │ │ └─testdata │ │ │ │ ├─codesign │ │ │ │ ├─cov │ │ │ │ │ └─testdata │ │ │ │ ├─dwarf │ │ │ │ ├─edit │ │ │ │ ├─gcprog │ │ │ │ ├─goobj │ │ │ │ ├─metadata │ │ │ │ ├─moddeps │ │ │ │ ├─notsha256 │ │ │ │ ├─obj │ │ │ │ │ ├─arm │ │ │ │ │ ├─arm64 │ │ │ │ │ ├─loong64 │ │ │ │ │ ├─mips │ │ │ │ │ ├─ppc64 │ │ │ │ │ ├─riscv │ │ │ │ │ │ └─testdata │ │ │ │ │ │ └─testbranch │ │ │ │ │ ├─s390x │ │ │ │ │ ├─wasm │ │ │ │ │ └─x86 │ │ │ │ ├─objabi │ │ │ │ ├─objfile │ │ │ │ ├─osinfo │ │ │ │ ├─pkgpath │ │ │ │ ├─pkgpattern │ │ │ │ ├─quoted │ │ │ │ ├─src │ │ │ │ ├─sys │ │ │ │ ├─test2json │ │ │ │ │ └─testdata │ │ │ │ └─traceviewer │ │ │ ├─link │ │ │ │ ├─internal │ │ │ │ │ ├─amd64 │ │ │ │ │ ├─arm │ │ │ │ │ ├─arm64 │ │ │ │ │ ├─benchmark │ │ │ │ │ ├─dwtest │ │ │ │ │ ├─ld │ │ │ │ │ │ └─testdata │ │ │ │ │ │ ├─deadcode │ │ │ │ │ │ ├─httptest │ │ │ │ │ │ │ └─main │ │ │ │ │ │ ├─issue10978 │ │ │ │ │ │ ├─issue25459 │ │ │ │ │ │ │ ├─a │ │ │ │ │ │ │ └─main │ │ │ │ │ │ ├─issue26237 │ │ │ │ │ │ │ ├─b.dir │ │ │ │ │ │ │ └─main │ │ │ │ │ │ ├─issue32233 │ │ │ │ │ │ │ ├─lib │ │ │ │ │ │ │ └─main │ │ │ │ │ │ ├─issue38192 │ │ │ │ │ │ ├─issue39256 │ │ │ │ │ │ ├─issue39757 │ │ │ │ │ │ ├─issue42484 │ │ │ │ │ │ └─stackcheck │ │ │ │ │ ├─loadelf │ │ │ │ │ ├─loader │ │ │ │ │ ├─loadmacho │ │ │ │ │ ├─loadpe │ │ │ │ │ ├─loadxcoff │ │ │ │ │ ├─loong64 │ │ │ │ │ ├─mips │ │ │ │ │ ├─mips64 │ │ │ │ │ ├─ppc64 │ │ │ │ │ ├─riscv64 │ │ │ │ │ ├─s390x │ │ │ │ │ ├─sym │ │ │ │ │ ├─wasm │ │ │ │ │ └─x86 │ │ │ │ └─testdata │ │ │ │ ├─pe-binutils │ │ │ │ ├─pe-llvm │ │ │ │ ├─testBuildFortvOS │ │ │ │ ├─testHashedSyms │ │ │ │ ├─testIndexMismatch │ │ │ │ └─testRO │ │ │ ├─nm │ │ │ ├─objdump │ │ │ │ └─testdata │ │ │ │ └─testfilenum │ │ │ ├─pack │ │ │ ├─pprof │ │ │ │ └─testdata │ │ │ ├─test2json │ │ │ ├─trace │ │ │ │ └─static │ │ │ ├─vendor │ │ │ │ ├─github.com │ │ │ │ │ ├─google │ │ │ │ │ │ └─pprof │ │ │ │ │ │ ├─driver │ │ │ │ │ │ ├─internal │ │ │ │ │ │ │ ├─binutils │ │ │ │ │ │ │ ├─driver │ │ │ │ │ │ │ │ └─html │ │ │ │ │ │ │ ├─elfexec │ │ │ │ │ │ │ ├─graph │ │ │ │ │ │ │ ├─measurement │ │ │ │ │ │ │ ├─plugin │ │ │ │ │ │ │ ├─report │ │ │ │ │ │ │ ├─symbolizer │ │ │ │ │ │ │ ├─symbolz │ │ │ │ │ │ │ └─transport │ │ │ │ │ │ ├─profile │ │ │ │ │ │ └─third_party │ │ │ │ │ │ ├─d3flamegraph │ │ │ │ │ │ └─svgpan │ │ │ │ │ └─ianlancetaylor │ │ │ │ │ └─demangle │ │ │ │ └─golang.org │ │ │ │ └─x │ │ │ │ ├─arch │ │ │ │ │ ├─arm │ │ │ │ │ │ └─armasm │ │ │ │ │ ├─arm64 │ │ │ │ │ │ └─arm64asm │ │ │ │ │ ├─ppc64 │ │ │ │ │ │ └─ppc64asm │ │ │ │ │ └─x86 │ │ │ │ │ └─x86asm │ │ │ │ ├─mod │ │ │ │ │ ├─internal │ │ │ │ │ │ └─lazyregexp │ │ │ │ │ ├─modfile │ │ │ │ │ ├─module │ │ │ │ │ ├─semver │ │ │ │ │ ├─sumdb │ │ │ │ │ │ ├─dirhash │ │ │ │ │ │ ├─note │ │ │ │ │ │ └─tlog │ │ │ │ │ └─zip │ │ │ │ ├─sync │ │ │ │ │ └─semaphore │ │ │ │ ├─sys │ │ │ │ │ ├─internal │ │ │ │ │ │ └─unsafeheader │ │ │ │ │ ├─plan9 │ │ │ │ │ ├─unix │ │ │ │ │ └─windows │ │ │ │ ├─term │ │ │ │ └─tools │ │ │ │ ├─cover │ │ │ │ ├─go │ │ │ │ │ ├─analysis │ │ │ │ │ │ ├─internal │ │ │ │ │ │ │ └─analysisflags │ │ │ │ │ │ ├─passes │ │ │ │ │ │ │ ├─asmdecl │ │ │ │ │ │ │ ├─assign │ │ │ │ │ │ │ ├─atomic │ │ │ │ │ │ │ ├─bools │ │ │ │ │ │ │ ├─buildtag │ │ │ │ │ │ │ ├─cgocall │ │ │ │ │ │ │ ├─composite │ │ │ │ │ │ │ ├─copylock │ │ │ │ │ │ │ ├─ctrlflow │ │ │ │ │ │ │ ├─errorsas │ │ │ │ │ │ │ ├─framepointer │ │ │ │ │ │ │ ├─httpresponse │ │ │ │ │ │ │ ├─ifaceassert │ │ │ │ │ │ │ ├─inspect │ │ │ │ │ │ │ ├─internal │ │ │ │ │ │ │ │ └─analysisutil │ │ │ │ │ │ │ ├─loopclosure │ │ │ │ │ │ │ ├─lostcancel │ │ │ │ │ │ │ ├─nilfunc │ │ │ │ │ │ │ ├─printf │ │ │ │ │ │ │ ├─shift │ │ │ │ │ │ │ ├─sigchanyzer │ │ │ │ │ │ │ ├─stdmethods │ │ │ │ │ │ │ ├─stringintconv │ │ │ │ │ │ │ ├─structtag │ │ │ │ │ │ │ ├─testinggoroutine │ │ │ │ │ │ │ ├─tests │ │ │ │ │ │ │ ├─timeformat │ │ │ │ │ │ │ ├─unmarshal │ │ │ │ │ │ │ ├─unreachable │ │ │ │ │ │ │ ├─unsafeptr │ │ │ │ │ │ │ └─unusedresult │ │ │ │ │ │ └─unitchecker │ │ │ │ │ ├─ast │ │ │ │ │ │ ├─astutil │ │ │ │ │ │ └─inspector │ │ │ │ │ ├─cfg │ │ │ │ │ └─types │ │ │ │ │ ├─objectpath │ │ │ │ │ └─typeutil │ │ │ │ └─internal │ │ │ │ ├─analysisinternal │ │ │ │ ├─facts │ │ │ │ └─typeparams │ │ │ └─vet │ │ │ └─testdata │ │ │ ├─asm │ │ │ ├─assign │ │ │ ├─atomic │ │ │ ├─bool │ │ │ ├─buildtag │ │ │ ├─cgo │ │ │ ├─composite │ │ │ ├─copylock │ │ │ ├─deadcode │ │ │ ├─httpresponse │ │ │ ├─lostcancel │ │ │ ├─method │ │ │ ├─nilfunc │ │ │ ├─print │ │ │ ├─rangeloop │ │ │ ├─shift │ │ │ ├─structtag │ │ │ ├─tagtest │ │ │ ├─testingpkg │ │ │ ├─unmarshal │ │ │ ├─unsafeptr │ │ │ └─unused │ │ ├─compress │ │ │ ├─bzip2 │ │ │ │ └─testdata │ │ │ ├─flate │ │ │ │ └─testdata │ │ │ ├─gzip │ │ │ │ └─testdata │ │ │ ├─lzw │ │ │ ├─testdata │ │ │ └─zlib │ │ ├─container │ │ │ ├─heap │ │ │ ├─list │ │ │ └─ring │ │ ├─context │ │ ├─crypto │ │ │ ├─aes │ │ │ ├─boring │ │ │ ├─cipher │ │ │ ├─des │ │ │ ├─dsa │ │ │ ├─ecdh │ │ │ ├─ecdsa │ │ │ │ └─testdata │ │ │ ├─ed25519 │ │ │ │ └─testdata │ │ │ ├─elliptic │ │ │ ├─hmac │ │ │ ├─internal │ │ │ │ ├─alias │ │ │ │ ├─bigmod │ │ │ │ │ └─_asm │ │ │ │ ├─boring │ │ │ │ │ ├─bbig │ │ │ │ │ ├─bcache │ │ │ │ │ ├─fipstls │ │ │ │ │ ├─sig │ │ │ │ │ └─syso │ │ │ │ ├─edwards25519 │ │ │ │ │ └─field │ │ │ │ │ └─_asm │ │ │ │ ├─nistec │ │ │ │ │ └─fiat │ │ │ │ └─randutil │ │ │ ├─md5 │ │ │ ├─rand │ │ │ ├─rc4 │ │ │ ├─rsa │ │ │ │ └─testdata │ │ │ ├─sha1 │ │ │ ├─sha256 │ │ │ ├─sha512 │ │ │ ├─subtle │ │ │ ├─tls │ │ │ │ ├─fipsonly │ │ │ │ └─testdata │ │ │ └─x509 │ │ │ ├─internal │ │ │ │ └─macos │ │ │ ├─pkix │ │ │ └─testdata │ │ ├─database │ │ │ └─sql │ │ │ └─driver │ │ ├─debug │ │ │ ├─buildinfo │ │ │ ├─dwarf │ │ │ │ └─testdata │ │ │ ├─elf │ │ │ │ └─testdata │ │ │ ├─gosym │ │ │ │ └─testdata │ │ │ ├─macho │ │ │ │ └─testdata │ │ │ ├─pe │ │ │ │ └─testdata │ │ │ └─plan9obj │ │ │ └─testdata │ │ ├─embed │ │ │ └─internal │ │ │ └─embedtest │ │ │ └─testdata │ │ │ ├─-not-hidden │ │ │ ├─.hidden │ │ │ │ ├─.more │ │ │ │ ├─more │ │ │ │ └─_more │ │ │ ├─i │ │ │ │ └─j │ │ │ │ └─k │ │ │ └─_hidden │ │ ├─encoding │ │ │ ├─ascii85 │ │ │ ├─asn1 │ │ │ ├─base32 │ │ │ ├─base64 │ │ │ ├─binary │ │ │ ├─csv │ │ │ ├─gob │ │ │ ├─hex │ │ │ ├─json │ │ │ │ └─testdata │ │ │ ├─pem │ │ │ └─xml │ │ ├─errors │ │ ├─expvar │ │ ├─flag │ │ ├─fmt │ │ ├─go │ │ │ ├─ast │ │ │ ├─build │ │ │ │ ├─constraint │ │ │ │ └─testdata │ │ │ │ ├─alltags │ │ │ │ ├─bads │ │ │ │ ├─cgo_disabled │ │ │ │ ├─doc │ │ │ │ ├─empty │ │ │ │ ├─multi │ │ │ │ ├─non_source_tags │ │ │ │ ├─other │ │ │ │ │ └─file │ │ │ │ └─withvendor │ │ │ │ └─src │ │ │ │ └─a │ │ │ │ ├─b │ │ │ │ └─vendor │ │ │ │ └─c │ │ │ │ └─d │ │ │ ├─constant │ │ │ ├─doc │ │ │ │ ├─comment │ │ │ │ │ └─testdata │ │ │ │ └─testdata │ │ │ │ ├─examples │ │ │ │ └─pkgdoc │ │ │ ├─format │ │ │ ├─importer │ │ │ ├─internal │ │ │ │ ├─gccgoimporter │ │ │ │ │ └─testdata │ │ │ │ ├─gcimporter │ │ │ │ │ └─testdata │ │ │ │ │ └─versions │ │ │ │ ├─srcimporter │ │ │ │ │ └─testdata │ │ │ │ │ ├─issue20855 │ │ │ │ │ ├─issue23092 │ │ │ │ │ └─issue24392 │ │ │ │ └─typeparams │ │ │ ├─parser │ │ │ │ └─testdata │ │ │ │ ├─issue42951 │ │ │ │ │ └─not_a_file.go │ │ │ │ └─resolution │ │ │ ├─printer │ │ │ │ └─testdata │ │ │ ├─scanner │ │ │ ├─token │ │ │ └─types │ │ │ └─testdata │ │ │ └─local │ │ ├─hash │ │ │ ├─adler32 │ │ │ ├─crc32 │ │ │ ├─crc64 │ │ │ ├─fnv │ │ │ └─maphash │ │ ├─html │ │ │ └─template │ │ │ └─testdata │ │ ├─image │ │ │ ├─color │ │ │ │ └─palette │ │ │ ├─draw │ │ │ ├─gif │ │ │ ├─internal │ │ │ │ └─imageutil │ │ │ ├─jpeg │ │ │ ├─png │ │ │ │ └─testdata │ │ │ │ └─pngsuite │ │ │ └─testdata │ │ ├─index │ │ │ └─suffixarray │ │ ├─internal │ │ │ ├─abi │ │ │ │ └─testdata │ │ │ ├─buildcfg │ │ │ ├─bytealg │ │ │ ├─cfg │ │ │ ├─coverage │ │ │ │ ├─calloc │ │ │ │ ├─cformat │ │ │ │ ├─cmerge │ │ │ │ ├─decodecounter │ │ │ │ ├─decodemeta │ │ │ │ ├─encodecounter │ │ │ │ ├─encodemeta │ │ │ │ ├─pods │ │ │ │ ├─rtcov │ │ │ │ ├─slicereader │ │ │ │ ├─slicewriter │ │ │ │ ├─stringtab │ │ │ │ ├─test │ │ │ │ └─uleb128 │ │ │ ├─cpu │ │ │ ├─dag │ │ │ ├─diff │ │ │ │ └─testdata │ │ │ ├─fmtsort │ │ │ ├─fuzz │ │ │ ├─goarch │ │ │ ├─godebug │ │ │ ├─goexperiment │ │ │ ├─goos │ │ │ ├─goroot │ │ │ ├─goversion │ │ │ ├─intern │ │ │ ├─itoa │ │ │ ├─lazyregexp │ │ │ ├─lazytemplate │ │ │ ├─nettrace │ │ │ ├─obscuretestdata │ │ │ ├─oserror │ │ │ ├─pkgbits │ │ │ ├─platform │ │ │ ├─poll │ │ │ ├─profile │ │ │ ├─race │ │ │ ├─reflectlite │ │ │ ├─safefilepath │ │ │ ├─saferio │ │ │ ├─singleflight │ │ │ ├─syscall │ │ │ │ ├─execenv │ │ │ │ ├─unix │ │ │ │ └─windows │ │ │ │ ├─registry │ │ │ │ └─sysdll │ │ │ ├─sysinfo │ │ │ ├─testenv │ │ │ ├─testlog │ │ │ ├─testpty │ │ │ ├─trace │ │ │ │ └─testdata │ │ │ ├─txtar │ │ │ ├─types │ │ │ │ ├─errors │ │ │ │ └─testdata │ │ │ │ ├─check │ │ │ │ │ ├─decls2 │ │ │ │ │ ├─importdecl0 │ │ │ │ │ ├─importdecl1 │ │ │ │ │ └─issue25008 │ │ │ │ ├─examples │ │ │ │ ├─fixedbugs │ │ │ │ └─spec │ │ │ ├─unsafeheader │ │ │ └─xcoff │ │ │ └─testdata │ │ ├─io │ │ │ ├─fs │ │ │ └─ioutil │ │ │ └─testdata │ │ ├─log │ │ │ └─syslog │ │ ├─math │ │ │ ├─big │ │ │ ├─bits │ │ │ ├─cmplx │ │ │ └─rand │ │ ├─mime │ │ │ ├─multipart │ │ │ │ └─testdata │ │ │ ├─quotedprintable │ │ │ └─testdata │ │ ├─net │ │ │ ├─http │ │ │ │ ├─cgi │ │ │ │ │ └─testdata │ │ │ │ ├─cookiejar │ │ │ │ ├─fcgi │ │ │ │ ├─httptest │ │ │ │ ├─httptrace │ │ │ │ ├─httputil │ │ │ │ ├─internal │ │ │ │ │ ├─ascii │ │ │ │ │ └─testcert │ │ │ │ ├─pprof │ │ │ │ └─testdata │ │ │ ├─internal │ │ │ │ └─socktest │ │ │ ├─mail │ │ │ ├─netip │ │ │ ├─rpc │ │ │ │ └─jsonrpc │ │ │ ├─smtp │ │ │ ├─testdata │ │ │ ├─textproto │ │ │ └─url │ │ ├─os │ │ │ ├─exec │ │ │ │ └─internal │ │ │ │ └─fdtest │ │ │ ├─signal │ │ │ ├─testdata │ │ │ │ ├─dirfs │ │ │ │ │ └─dir │ │ │ │ └─issue37161 │ │ │ └─user │ │ ├─path │ │ │ └─filepath │ │ ├─plugin │ │ ├─reflect │ │ │ └─internal │ │ │ ├─example1 │ │ │ └─example2 │ │ ├─regexp │ │ │ ├─syntax │ │ │ └─testdata │ │ ├─runtime │ │ │ ├─asan │ │ │ ├─cgo │ │ │ ├─coverage │ │ │ │ └─testdata │ │ │ │ └─issue56006 │ │ │ ├─debug │ │ │ ├─internal │ │ │ │ ├─atomic │ │ │ │ ├─math │ │ │ │ ├─startlinetest │ │ │ │ ├─sys │ │ │ │ └─syscall │ │ │ ├─metrics │ │ │ ├─msan │ │ │ ├─pprof │ │ │ │ └─testdata │ │ │ │ └─mappingtest │ │ │ ├─race │ │ │ │ ├─internal │ │ │ │ │ ├─amd64v1 │ │ │ │ │ └─amd64v3 │ │ │ │ └─testdata │ │ │ ├─testdata │ │ │ │ ├─testexithooks │ │ │ │ ├─testfaketime │ │ │ │ ├─testprog │ │ │ │ ├─testprogcgo │ │ │ │ │ └─windows │ │ │ │ ├─testprognet │ │ │ │ ├─testwinlib │ │ │ │ ├─testwinlibsignal │ │ │ │ ├─testwinlibthrow │ │ │ │ └─testwinsignal │ │ │ └─trace │ │ ├─sort │ │ ├─strconv │ │ │ └─testdata │ │ ├─strings │ │ ├─sync │ │ │ └─atomic │ │ ├─syscall │ │ │ └─js │ │ ├─testdata │ │ ├─testing │ │ │ ├─fstest │ │ │ ├─internal │ │ │ │ └─testdeps │ │ │ ├─iotest │ │ │ └─quick │ │ ├─text │ │ │ ├─scanner │ │ │ ├─tabwriter │ │ │ └─template │ │ │ ├─parse │ │ │ └─testdata │ │ ├─time │ │ │ ├─testdata │ │ │ └─tzdata │ │ ├─unicode │ │ │ ├─utf16 │ │ │ └─utf8 │ │ ├─unsafe │ │ └─vendor │ │ └─golang.org │ │ └─x │ │ ├─crypto │ │ │ ├─chacha20 │ │ │ ├─chacha20poly1305 │ │ │ ├─cryptobyte │ │ │ │ └─asn1 │ │ │ ├─hkdf │ │ │ └─internal │ │ │ ├─alias │ │ │ └─poly1305 │ │ ├─net │ │ │ ├─dns │ │ │ │ └─dnsmessage │ │ │ ├─http │ │ │ │ ├─httpguts │ │ │ │ └─httpproxy │ │ │ ├─http2 │ │ │ │ └─hpack │ │ │ ├─idna │ │ │ ├─lif │ │ │ ├─nettest │ │ │ └─route │ │ ├─sys │ │ │ └─cpu │ │ └─text │ │ ├─secure │ │ │ └─bidirule │ │ ├─transform │ │ └─unicode │ │ ├─bidi │ │ └─norm │ └─test │ ├─abi │ ├─alias3.dir │ ├─asmhdr.dir │ ├─bench │ │ ├─garbage │ │ └─go1 │ ├─chan │ ├─closure3.dir │ ├─closure5.dir │ ├─codegen │ ├─ddd2.dir │ ├─dwarf │ │ └─dwarf.dir │ ├─fixedbugs │ │ ├─bug083.dir │ │ ├─bug088.dir │ │ ├─bug106.dir │ │ ├─bug133.dir │ │ ├─bug160.dir │ │ ├─bug191.dir │ │ ├─bug222.dir │ │ ├─bug248.dir │ │ ├─bug282.dir │ │ ├─bug306.dir │ │ ├─bug313.dir │ │ ├─bug322.dir │ │ ├─bug324.dir │ │ ├─bug335.dir │ │ ├─bug345.dir │ │ ├─bug367.dir │ │ ├─bug369.dir │ │ ├─bug377.dir │ │ ├─bug382.dir │ │ ├─bug392.dir │ │ ├─bug396.dir │ │ ├─bug404.dir │ │ ├─bug407.dir │ │ ├─bug414.dir │ │ ├─bug415.dir │ │ ├─bug424.dir │ │ ├─bug437.dir │ │ ├─bug448.dir │ │ ├─bug460.dir │ │ ├─bug465.dir │ │ ├─bug466.dir │ │ ├─bug467.dir │ │ ├─bug468.dir │ │ ├─bug472.dir │ │ ├─bug478.dir │ │ ├─bug479.dir │ │ ├─bug480.dir │ │ ├─bug488.dir │ │ ├─bug492.dir │ │ ├─bug504.dir │ │ ├─bug506.dir │ │ ├─bug507.dir │ │ ├─bug510.dir │ │ ├─bug511.dir │ │ ├─gcc67968.dir │ │ ├─issue10066.dir │ │ ├─issue10219.dir │ │ ├─issue10700.dir │ │ ├─issue11053.dir │ │ ├─issue11656.dir │ │ ├─issue12677.dir │ │ ├─issue13777.dir │ │ ├─issue14164.dir │ │ ├─issue14331.dir │ │ ├─issue15071.dir │ │ ├─issue15470.dir │ │ ├─issue15514.dir │ │ ├─issue15548.dir │ │ ├─issue15572.dir │ │ ├─issue15609.dir │ │ ├─issue15646.dir │ │ ├─issue15838.dir │ │ ├─issue15920.dir │ │ ├─issue16133.dir │ │ ├─issue16317.dir │ │ ├─issue16616.dir │ │ ├─issue18419.dir │ │ ├─issue18895.dir │ │ ├─issue18911.dir │ │ ├─issue19028.dir │ │ ├─issue19261.dir │ │ ├─issue19467.dir │ │ ├─issue19507.dir │ │ ├─issue19548.dir │ │ ├─issue19699.dir │ │ ├─issue19764.dir │ │ ├─issue20014.dir │ │ │ └─a │ │ ├─issue20682.dir │ │ ├─issue21120.dir │ │ ├─issue22877.dir │ │ ├─issue22941.dir │ │ ├─issue22962.dir │ │ ├─issue23179.dir │ │ ├─issue23311.dir │ │ ├─issue24693.dir │ │ ├─issue24761.dir │ │ ├─issue24801.dir │ │ ├─issue25055.dir │ │ ├─issue25984.dir │ │ ├─issue26341.dir │ │ ├─issue27836.dir │ │ ├─issue29610.dir │ │ ├─issue29612.dir │ │ │ ├─p1 │ │ │ │ └─ssa │ │ │ └─p2 │ │ │ └─ssa │ │ ├─issue29919.dir │ │ ├─issue30659.dir │ │ ├─issue30862.dir │ │ │ ├─a │ │ │ └─b │ │ ├─issue30907.dir │ │ ├─issue30908.dir │ │ ├─issue31053.dir │ │ ├─issue31252.dir │ │ ├─issue31636.dir │ │ ├─issue31637.dir │ │ ├─issue31959.dir │ │ ├─issue32595.dir │ │ ├─issue32778.dir │ │ ├─issue32901.dir │ │ ├─issue32922.dir │ │ ├─issue33013.dir │ │ ├─issue33020.dir │ │ ├─issue33020a.dir │ │ ├─issue33158.dir │ │ ├─issue33219.dir │ │ ├─issue33739.dir │ │ ├─issue33866.dir │ │ ├─issue34503.dir │ │ ├─issue34577.dir │ │ ├─issue3552.dir │ │ ├─issue35586.dir │ │ ├─issue35739.dir │ │ ├─issue36085.dir │ │ ├─issue37513.dir │ │ ├─issue37837.dir │ │ ├─issue40252.dir │ │ ├─issue42284.dir │ │ ├─issue42401.dir │ │ ├─issue4252.dir │ │ ├─issue43164.dir │ │ ├─issue4326.dir │ │ ├─issue43479.dir │ │ ├─issue43551.dir │ │ ├─issue43633.dir │ │ ├─issue4370.dir │ │ ├─issue43962.dir │ │ ├─issue44325.dir │ │ ├─issue44330.dir │ │ ├─issue44335.dir │ │ ├─issue44355.dir │ │ ├─issue44370.dir │ │ ├─issue44732.dir │ │ │ ├─bar │ │ │ └─foo │ │ ├─issue4510.dir │ │ ├─issue45503.dir │ │ ├─issue4590.dir │ │ ├─issue46653.dir │ │ │ └─bad │ │ ├─issue47068.dir │ │ ├─issue47087.dir │ │ ├─issue47131.dir │ │ ├─issue47185.dir │ │ │ └─bad │ │ ├─issue47201.dir │ │ ├─issue47317.dir │ │ ├─issue48088.dir │ │ ├─issue4879.dir │ │ ├─issue49016.dir │ │ ├─issue49094.dir │ │ ├─issue49143.dir │ │ ├─issue4932.dir │ │ ├─issue4964.dir │ │ ├─issue50788.dir │ │ ├─issue5105.dir │ │ ├─issue5125.dir │ │ ├─issue51291.dir │ │ ├─issue52128.dir │ │ ├─issue52279.dir │ │ ├─issue5259.dir │ │ ├─issue52590.dir │ │ ├─issue5260.dir │ │ ├─issue52856.dir │ │ ├─issue52862.dir │ │ ├─issue5291.dir │ │ ├─issue5470.dir │ │ ├─issue54912.dir │ │ ├─issue5614.dir │ │ ├─issue56280.dir │ │ ├─issue56778.dir │ │ ├─issue5755.dir │ │ ├─issue58563.dir │ │ ├─issue5910.dir │ │ ├─issue5957.dir │ │ ├─issue6295.dir │ │ ├─issue6513.dir │ │ ├─issue6789.dir │ │ ├─issue7023.dir │ │ ├─issue7648.dir │ │ ├─issue7995b.dir │ │ ├─issue8060.dir │ │ ├─issue8280.dir │ │ ├─issue9355.dir │ │ ├─issue9537.dir │ │ └─issue9608.dir │ ├─import2.dir │ ├─import4.dir │ ├─interface │ │ ├─embed1.dir │ │ ├─embed3.dir │ │ ├─private.dir │ │ └─recursive1.dir │ ├─intrinsic.dir │ ├─ken │ ├─linkname.dir │ ├─method4.dir │ ├─retjmp.dir │ ├─runtime │ ├─stress │ ├─syntax │ ├─typeparam │ │ ├─absdiffimp.dir │ │ ├─absdiffimp2.dir │ │ ├─aliasimp.dir │ │ ├─chansimp.dir │ │ ├─dedup.dir │ │ ├─factimp.dir │ │ ├─gencrawler.dir │ │ ├─geninline.dir │ │ ├─issue46461b.dir │ │ ├─issue47514c.dir │ │ ├─issue47775.dir │ │ ├─issue47892.dir │ │ ├─issue47892b.dir │ │ ├─issue48094.dir │ │ ├─issue48094b.dir │ │ ├─issue48185a.dir │ │ ├─issue48185b.dir │ │ ├─issue48280.dir │ │ ├─issue48306.dir │ │ ├─issue48337a.dir │ │ ├─issue48337b.dir │ │ ├─issue48454.dir │ │ ├─issue48462.dir │ │ ├─issue48716.dir │ │ ├─issue48962.dir │ │ ├─issue49027.dir │ │ ├─issue49241.dir │ │ ├─issue49246.dir │ │ ├─issue49497.dir │ │ ├─issue49524.dir │ │ ├─issue49536.dir │ │ ├─issue49659.dir │ │ ├─issue49667.dir │ │ ├─issue49893.dir │ │ ├─issue50121.dir │ │ ├─issue50121b.dir │ │ ├─issue50437.dir │ │ ├─issue50481b.dir │ │ ├─issue50481c.dir │ │ ├─issue50485.dir │ │ ├─issue50486.dir │ │ ├─issue50552.dir │ │ ├─issue50561.dir │ │ ├─issue50598.dir │ │ ├─issue50841.dir │ │ ├─issue51219.dir │ │ ├─issue51219b.dir │ │ ├─issue51250a.dir │ │ ├─issue51367.dir │ │ ├─issue51423.dir │ │ ├─issue51836.dir │ │ ├─issue52117.dir │ │ ├─issue54302.dir │ │ ├─listimp.dir │ │ ├─listimp2.dir │ │ ├─mapimp.dir │ │ ├─mapsimp.dir │ │ ├─mdempsky │ │ │ ├─1.dir │ │ │ ├─10.dir │ │ │ ├─12.dir │ │ │ ├─3.dir │ │ │ ├─4.dir │ │ │ ├─7.dir │ │ │ └─8.dir │ │ ├─mincheck.dir │ │ ├─minimp.dir │ │ ├─mutualimp.dir │ │ ├─orderedmapsimp.dir │ │ ├─pairimp.dir │ │ ├─recoverimp.dir │ │ ├─select.dir │ │ ├─setsimp.dir │ │ ├─sliceimp.dir │ │ ├─stringerimp.dir │ │ ├─structinit.dir │ │ └─valimp.dir │ └─uintptrescapes.dir ├─src │ ├─archive │ │ ├─tar │ │ │ └─testdata │ │ └─zip │ │ └─testdata │ ├─arena │ ├─bufio │ ├─builtin │ ├─bytes │ ├─cmd │ │ ├─addr2line │ │ ├─api │ │ │ └─testdata │ │ │ └─src │ │ │ ├─issue21181 │ │ │ │ ├─dep │ │ │ │ ├─indirect │ │ │ │ └─p │ │ │ ├─issue29837 │ │ │ │ └─p │ │ │ └─pkg │ │ │ ├─p1 │ │ │ ├─p2 │ │ │ ├─p3 │ │ │ └─p4 │ │ ├─asm │ │ │ └─internal │ │ │ ├─arch │ │ │ ├─asm │ │ │ │ └─testdata │ │ │ │ └─avx512enc │ │ │ ├─flags │ │ │ └─lex │ │ ├─buildid │ │ ├─cgo │ │ ├─compile │ │ │ └─internal │ │ │ ├─abi │ │ │ ├─abt │ │ │ ├─amd64 │ │ │ ├─arm │ │ │ ├─arm64 │ │ │ ├─base │ │ │ ├─bitvec │ │ │ ├─compare │ │ │ ├─coverage │ │ │ ├─deadcode │ │ │ ├─devirtualize │ │ │ ├─dwarfgen │ │ │ ├─escape │ │ │ ├─gc │ │ │ ├─importer │ │ │ │ └─testdata │ │ │ │ └─versions │ │ │ ├─inline │ │ │ ├─ir │ │ │ ├─liveness │ │ │ ├─logopt │ │ │ ├─loong64 │ │ │ ├─mips │ │ │ ├─mips64 │ │ │ ├─noder │ │ │ ├─objw │ │ │ ├─pgo │ │ │ ├─pkginit │ │ │ ├─ppc64 │ │ │ ├─reflectdata │ │ │ ├─riscv64 │ │ │ ├─s390x │ │ │ ├─ssa │ │ │ │ ├─testdata │ │ │ │ └─_gen │ │ │ ├─ssagen │ │ │ ├─staticdata │ │ │ ├─staticinit │ │ │ ├─syntax │ │ │ │ └─testdata │ │ │ ├─test │ │ │ │ └─testdata │ │ │ │ ├─gen │ │ │ │ ├─mysort │ │ │ │ ├─pgo │ │ │ │ │ └─inline │ │ │ │ └─reproducible │ │ │ ├─typebits │ │ │ ├─typecheck │ │ │ │ └─_builtin │ │ │ ├─types │ │ │ ├─types2 │ │ │ │ └─testdata │ │ │ │ └─local │ │ │ ├─walk │ │ │ ├─wasm │ │ │ └─x86 │ │ ├─covdata │ │ │ └─testdata │ │ ├─cover │ │ │ └─testdata │ │ │ ├─html │ │ │ └─pkgcfg │ │ │ ├─a │ │ │ ├─b │ │ │ └─main │ │ ├─dist │ │ ├─doc │ │ │ └─testdata │ │ │ ├─merge │ │ │ └─nested │ │ │ ├─empty │ │ │ └─nested │ │ ├─fix │ │ ├─go │ │ │ ├─internal │ │ │ │ ├─auth │ │ │ │ ├─base │ │ │ │ ├─bug │ │ │ │ ├─cache │ │ │ │ ├─cfg │ │ │ │ ├─clean │ │ │ │ ├─cmdflag │ │ │ │ ├─doc │ │ │ │ ├─envcmd │ │ │ │ ├─fix │ │ │ │ ├─fmtcmd │ │ │ │ ├─fsys │ │ │ │ ├─generate │ │ │ │ ├─get │ │ │ │ ├─help │ │ │ │ ├─imports │ │ │ │ │ └─testdata │ │ │ │ │ ├─android │ │ │ │ │ ├─illumos │ │ │ │ │ └─star │ │ │ │ ├─list │ │ │ │ ├─load │ │ │ │ ├─lockedfile │ │ │ │ │ └─internal │ │ │ │ │ └─filelock │ │ │ │ ├─mmap │ │ │ │ ├─modcmd │ │ │ │ ├─modconv │ │ │ │ │ └─testdata │ │ │ │ ├─modfetch │ │ │ │ │ ├─codehost │ │ │ │ │ └─zip_sum_test │ │ │ │ │ └─testdata │ │ │ │ ├─modget │ │ │ │ ├─modindex │ │ │ │ │ └─testdata │ │ │ │ │ └─ignore_non_source │ │ │ │ ├─modinfo │ │ │ │ ├─modload │ │ │ │ ├─mvs │ │ │ │ ├─par │ │ │ │ ├─robustio │ │ │ │ ├─run │ │ │ │ ├─script │ │ │ │ │ └─scripttest │ │ │ │ ├─search │ │ │ │ ├─str │ │ │ │ ├─test │ │ │ │ │ └─internal │ │ │ │ │ └─genflags │ │ │ │ ├─tool │ │ │ │ ├─trace │ │ │ │ ├─vcs │ │ │ │ ├─vcweb │ │ │ │ │ └─vcstest │ │ │ │ ├─version │ │ │ │ ├─vet │ │ │ │ ├─web │ │ │ │ ├─work │ │ │ │ └─workcmd │ │ │ └─testdata │ │ │ ├─failssh │ │ │ ├─mod │ │ │ ├─script │ │ │ └─vcstest │ │ │ ├─auth │ │ │ ├─bzr │ │ │ ├─fossil │ │ │ ├─git │ │ │ ├─go │ │ │ │ └─mod │ │ │ ├─hg │ │ │ └─svn │ │ ├─gofmt │ │ │ └─testdata │ │ ├─internal │ │ │ ├─archive │ │ │ │ └─testdata │ │ │ │ └─mycgo │ │ │ ├─bio │ │ │ ├─browser │ │ │ ├─buildid │ │ │ │ └─testdata │ │ │ ├─codesign │ │ │ ├─cov │ │ │ │ └─testdata │ │ │ ├─dwarf │ │ │ ├─edit │ │ │ ├─gcprog │ │ │ ├─goobj │ │ │ ├─metadata │ │ │ ├─moddeps │ │ │ ├─notsha256 │ │ │ ├─obj │ │ │ │ ├─arm │ │ │ │ ├─arm64 │ │ │ │ ├─loong64 │ │ │ │ ├─mips │ │ │ │ ├─ppc64 │ │ │ │ ├─riscv │ │ │ │ │ └─testdata │ │ │ │ │ └─testbranch │ │ │ │ ├─s390x │ │ │ │ ├─wasm │ │ │ │ └─x86 │ │ │ ├─objabi │ │ │ ├─objfile │ │ │ ├─osinfo │ │ │ ├─pkgpath │ │ │ ├─pkgpattern │ │ │ ├─quoted │ │ │ ├─src │ │ │ ├─sys │ │ │ ├─test2json │ │ │ │ └─testdata │ │ │ └─traceviewer │ │ ├─link │ │ │ ├─internal │ │ │ │ ├─amd64 │ │ │ │ ├─arm │ │ │ │ ├─arm64 │ │ │ │ ├─benchmark │ │ │ │ ├─dwtest │ │ │ │ ├─ld │ │ │ │ │ └─testdata │ │ │ │ │ ├─deadcode │ │ │ │ │ ├─httptest │ │ │ │ │ │ └─main │ │ │ │ │ ├─issue10978 │ │ │ │ │ ├─issue25459 │ │ │ │ │ │ ├─a │ │ │ │ │ │ └─main │ │ │ │ │ ├─issue26237 │ │ │ │ │ │ ├─b.dir │ │ │ │ │ │ └─main │ │ │ │ │ ├─issue32233 │ │ │ │ │ │ ├─lib │ │ │ │ │ │ └─main │ │ │ │ │ ├─issue38192 │ │ │ │ │ ├─issue39256 │ │ │ │ │ ├─issue39757 │ │ │ │ │ ├─issue42484 │ │ │ │ │ └─stackcheck │ │ │ │ ├─loadelf │ │ │ │ ├─loader │ │ │ │ ├─loadmacho │ │ │ │ ├─loadpe │ │ │ │ ├─loadxcoff │ │ │ │ ├─loong64 │ │ │ │ ├─mips │ │ │ │ ├─mips64 │ │ │ │ ├─ppc64 │ │ │ │ ├─riscv64 │ │ │ │ ├─s390x │ │ │ │ ├─sym │ │ │ │ ├─wasm │ │ │ │ └─x86 │ │ │ └─testdata │ │ │ ├─pe-binutils │ │ │ ├─pe-llvm │ │ │ ├─testBuildFortvOS │ │ │ ├─testHashedSyms │ │ │ ├─testIndexMismatch │ │ │ └─testRO │ │ ├─nm │ │ ├─objdump │ │ │ └─testdata │ │ │ └─testfilenum │ │ ├─pack │ │ ├─pprof │ │ │ └─testdata │ │ ├─test2json │ │ ├─trace │ │ │ └─static │ │ ├─vendor │ │ │ ├─github.com │ │ │ │ ├─google │ │ │ │ │ └─pprof │ │ │ │ │ ├─driver │ │ │ │ │ ├─internal │ │ │ │ │ │ ├─binutils │ │ │ │ │ │ ├─driver │ │ │ │ │ │ │ └─html │ │ │ │ │ │ ├─elfexec │ │ │ │ │ │ ├─graph │ │ │ │ │ │ ├─measurement │ │ │ │ │ │ ├─plugin │ │ │ │ │ │ ├─report │ │ │ │ │ │ ├─symbolizer │ │ │ │ │ │ ├─symbolz │ │ │ │ │ │ └─transport │ │ │ │ │ ├─profile │ │ │ │ │ └─third_party │ │ │ │ │ ├─d3flamegraph │ │ │ │ │ └─svgpan │ │ │ │ └─ianlancetaylor │ │ │ │ └─demangle │ │ │ └─golang.org │ │ │ └─x │ │ │ ├─arch │ │ │ │ ├─arm │ │ │ │ │ └─armasm │ │ │ │ ├─arm64 │ │ │ │ │ └─arm64asm │ │ │ │ ├─ppc64 │ │ │ │ │ └─ppc64asm │ │ │ │ └─x86 │ │ │ │ └─x86asm │ │ │ ├─mod │ │ │ │ ├─internal │ │ │ │ │ └─lazyregexp │ │ │ │ ├─modfile │ │ │ │ ├─module │ │ │ │ ├─semver │ │ │ │ ├─sumdb │ │ │ │ │ ├─dirhash │ │ │ │ │ ├─note │ │ │ │ │ └─tlog │ │ │ │ └─zip │ │ │ ├─sync │ │ │ │ └─semaphore │ │ │ ├─sys │ │ │ │ ├─internal │ │ │ │ │ └─unsafeheader │ │ │ │ ├─plan9 │ │ │ │ ├─unix │ │ │ │ └─windows │ │ │ ├─term │ │ │ └─tools │ │ │ ├─cover │ │ │ ├─go │ │ │ │ ├─analysis │ │ │ │ │ ├─internal │ │ │ │ │ │ └─analysisflags │ │ │ │ │ ├─passes │ │ │ │ │ │ ├─asmdecl │ │ │ │ │ │ ├─assign │ │ │ │ │ │ ├─atomic │ │ │ │ │ │ ├─bools │ │ │ │ │ │ ├─buildtag │ │ │ │ │ │ ├─cgocall │ │ │ │ │ │ ├─composite │ │ │ │ │ │ ├─copylock │ │ │ │ │ │ ├─ctrlflow │ │ │ │ │ │ ├─errorsas │ │ │ │ │ │ ├─framepointer │ │ │ │ │ │ ├─httpresponse │ │ │ │ │ │ ├─ifaceassert │ │ │ │ │ │ ├─inspect │ │ │ │ │ │ ├─internal │ │ │ │ │ │ │ └─analysisutil │ │ │ │ │ │ ├─loopclosure │ │ │ │ │ │ ├─lostcancel │ │ │ │ │ │ ├─nilfunc │ │ │ │ │ │ ├─printf │ │ │ │ │ │ ├─shift │ │ │ │ │ │ ├─sigchanyzer │ │ │ │ │ │ ├─stdmethods │ │ │ │ │ │ ├─stringintconv │ │ │ │ │ │ ├─structtag │ │ │ │ │ │ ├─testinggoroutine │ │ │ │ │ │ ├─tests │ │ │ │ │ │ ├─timeformat │ │ │ │ │ │ ├─unmarshal │ │ │ │ │ │ ├─unreachable │ │ │ │ │ │ ├─unsafeptr │ │ │ │ │ │ └─unusedresult │ │ │ │ │ └─unitchecker │ │ │ │ ├─ast │ │ │ │ │ ├─astutil │ │ │ │ │ └─inspector │ │ │ │ ├─cfg │ │ │ │ └─types │ │ │ │ ├─objectpath │ │ │ │ └─typeutil │ │ │ └─internal │ │ │ ├─analysisinternal │ │ │ ├─facts │ │ │ └─typeparams │ │ └─vet │ │ └─testdata │ │ ├─asm │ │ ├─assign │ │ ├─atomic │ │ ├─bool │ │ ├─buildtag │ │ ├─cgo │ │ ├─composite │ │ ├─copylock │ │ ├─deadcode │ │ ├─httpresponse │ │ ├─lostcancel │ │ ├─method │ │ ├─nilfunc │ │ ├─print │ │ ├─rangeloop │ │ ├─shift │ │ ├─structtag │ │ ├─tagtest │ │ ├─testingpkg │ │ ├─unmarshal │ │ ├─unsafeptr │ │ └─unused │ ├─compress │ │ ├─bzip2 │ │ │ └─testdata │ │ ├─flate │ │ │ └─testdata │ │ ├─gzip │ │ │ └─testdata │ │ ├─lzw │ │ ├─testdata │ │ └─zlib │ ├─container │ │ ├─heap │ │ ├─list │ │ └─ring │ ├─context │ ├─crypto │ │ ├─aes │ │ ├─boring │ │ ├─cipher │ │ ├─des │ │ ├─dsa │ │ ├─ecdh │ │ ├─ecdsa │ │ │ └─testdata │ │ ├─ed25519 │ │ │ └─testdata │ │ ├─elliptic │ │ ├─hmac │ │ ├─internal │ │ │ ├─alias │ │ │ ├─bigmod │ │ │ │ └─_asm │ │ │ ├─boring │ │ │ │ ├─bbig │ │ │ │ ├─bcache │ │ │ │ ├─fipstls │ │ │ │ ├─sig │ │ │ │ └─syso │ │ │ ├─edwards25519 │ │ │ │ └─field │ │ │ │ └─_asm │ │ │ ├─nistec │ │ │ │ └─fiat │ │ │ └─randutil │ │ ├─md5 │ │ ├─rand │ │ ├─rc4 │ │ ├─rsa │ │ │ └─testdata │ │ ├─sha1 │ │ ├─sha256 │ │ ├─sha512 │ │ ├─subtle │ │ ├─tls │ │ │ ├─fipsonly │ │ │ └─testdata │ │ └─x509 │ │ ├─internal │ │ │ └─macos │ │ ├─pkix │ │ └─testdata │ ├─database │ │ └─sql │ │ └─driver │ ├─debug │ │ ├─buildinfo │ │ ├─dwarf │ │ │ └─testdata │ │ ├─elf │ │ │ └─testdata │ │ ├─gosym │ │ │ └─testdata │ │ ├─macho │ │ │ └─testdata │ │ ├─pe │ │ │ └─testdata │ │ └─plan9obj │ │ └─testdata │ ├─embed │ │ └─internal │ │ └─embedtest │ │ └─testdata │ │ ├─-not-hidden │ │ ├─.hidden │ │ │ ├─.more │ │ │ ├─more │ │ │ └─_more │ │ ├─i │ │ │ └─j │ │ │ └─k │ │ └─_hidden │ ├─encoding │ │ ├─ascii85 │ │ ├─asn1 │ │ ├─base32 │ │ ├─base64 │ │ ├─binary │ │ ├─csv │ │ ├─gob │ │ ├─hex │ │ ├─json │ │ │ └─testdata │ │ ├─pem │ │ └─xml │ ├─errors │ ├─expvar │ ├─flag │ ├─fmt │ ├─go │ │ ├─ast │ │ ├─build │ │ │ ├─constraint │ │ │ └─testdata │ │ │ ├─alltags │ │ │ ├─bads │ │ │ ├─cgo_disabled │ │ │ ├─doc │ │ │ ├─empty │ │ │ ├─multi │ │ │ ├─non_source_tags │ │ │ ├─other │ │ │ │ └─file │ │ │ └─withvendor │ │ │ └─src │ │ │ └─a │ │ │ ├─b │ │ │ └─vendor │ │ │ └─c │ │ │ └─d │ │ ├─constant │ │ ├─doc │ │ │ ├─comment │ │ │ │ └─testdata │ │ │ └─testdata │ │ │ ├─examples │ │ │ └─pkgdoc │ │ ├─format │ │ ├─importer │ │ ├─internal │ │ │ ├─gccgoimporter │ │ │ │ └─testdata │ │ │ ├─gcimporter │ │ │ │ └─testdata │ │ │ │ └─versions │ │ │ ├─srcimporter │ │ │ │ └─testdata │ │ │ │ ├─issue20855 │ │ │ │ ├─issue23092 │ │ │ │ └─issue24392 │ │ │ └─typeparams │ │ ├─parser │ │ │ └─testdata │ │ │ ├─issue42951 │ │ │ │ └─not_a_file.go │ │ │ └─resolution │ │ ├─printer │ │ │ └─testdata │ │ ├─scanner │ │ ├─token │ │ └─types │ │ └─testdata │ │ └─local │ ├─hash │ │ ├─adler32 │ │ ├─crc32 │ │ ├─crc64 │ │ ├─fnv │ │ └─maphash │ ├─html │ │ └─template │ │ └─testdata │ ├─image │ │ ├─color │ │ │ └─palette │ │ ├─draw │ │ ├─gif │ │ ├─internal │ │ │ └─imageutil │ │ ├─jpeg │ │ ├─png │ │ │ └─testdata │ │ │ └─pngsuite │ │ └─testdata │ ├─index │ │ └─suffixarray │ ├─internal │ │ ├─abi │ │ │ └─testdata │ │ ├─buildcfg │ │ ├─bytealg │ │ ├─cfg │ │ ├─coverage │ │ │ ├─calloc │ │ │ ├─cformat │ │ │ ├─cmerge │ │ │ ├─decodecounter │ │ │ ├─decodemeta │ │ │ ├─encodecounter │ │ │ ├─encodemeta │ │ │ ├─pods │ │ │ ├─rtcov │ │ │ ├─slicereader │ │ │ ├─slicewriter │ │ │ ├─stringtab │ │ │ ├─test │ │ │ └─uleb128 │ │ ├─cpu │ │ ├─dag │ │ ├─diff │ │ │ └─testdata │ │ ├─fmtsort │ │ ├─fuzz │ │ ├─goarch │ │ ├─godebug │ │ ├─goexperiment │ │ ├─goos │ │ ├─goroot │ │ ├─goversion │ │ ├─intern │ │ ├─itoa │ │ ├─lazyregexp │ │ ├─lazytemplate │ │ ├─nettrace │ │ ├─obscuretestdata │ │ ├─oserror │ │ ├─pkgbits │ │ ├─platform │ │ ├─poll │ │ ├─profile │ │ ├─race │ │ ├─reflectlite │ │ ├─safefilepath │ │ ├─saferio │ │ ├─singleflight │ │ ├─syscall │ │ │ ├─execenv │ │ │ ├─unix │ │ │ └─windows │ │ │ ├─registry │ │ │ └─sysdll │ │ ├─sysinfo │ │ ├─testenv │ │ ├─testlog │ │ ├─testpty │ │ ├─trace │ │ │ └─testdata │ │ ├─txtar │ │ ├─types │ │ │ ├─errors │ │ │ └─testdata │ │ │ ├─check │ │ │ │ ├─decls2 │ │ │ │ ├─importdecl0 │ │ │ │ ├─importdecl1 │ │ │ │ └─issue25008 │ │ │ ├─examples │ │ │ ├─fixedbugs │ │ │ └─spec │ │ ├─unsafeheader │ │ └─xcoff │ │ └─testdata │ ├─io │ │ ├─fs │ │ └─ioutil │ │ └─testdata │ ├─log │ │ └─syslog │ ├─math │ │ ├─big │ │ ├─bits │ │ ├─cmplx │ │ └─rand │ ├─mime │ │ ├─multipart │ │ │ └─testdata │ │ ├─quotedprintable │ │ └─testdata │ ├─net │ │ ├─http │ │ │ ├─cgi │ │ │ │ └─testdata │ │ │ ├─cookiejar │ │ │ ├─fcgi │ │ │ ├─httptest │ │ │ ├─httptrace │ │ │ ├─httputil │ │ │ ├─internal │ │ │ │ ├─ascii │ │ │ │ └─testcert │ │ │ ├─pprof │ │ │ └─testdata │ │ ├─internal │ │ │ └─socktest │ │ ├─mail │ │ ├─netip │ │ ├─rpc │ │ │ └─jsonrpc │ │ ├─smtp │ │ ├─testdata │ │ ├─textproto │ │ └─url │ ├─os │ │ ├─exec │ │ │ └─internal │ │ │ └─fdtest │ │ ├─signal │ │ ├─testdata │ │ │ ├─dirfs │ │ │ │ └─dir │ │ │ └─issue37161 │ │ └─user │ ├─path │ │ └─filepath │ ├─plugin │ ├─reflect │ │ └─internal │ │ ├─example1 │ │ └─example2 │ ├─regexp │ │ ├─syntax │ │ └─testdata │ ├─runtime │ │ ├─asan │ │ ├─cgo │ │ ├─coverage │ │ │ └─testdata │ │ │ └─issue56006 │ │ ├─debug │ │ ├─internal │ │ │ ├─atomic │ │ │ ├─math │ │ │ ├─startlinetest │ │ │ ├─sys │ │ │ └─syscall │ │ ├─metrics │ │ ├─msan │ │ ├─pprof │ │ │ └─testdata │ │ │ └─mappingtest │ │ ├─race │ │ │ ├─internal │ │ │ │ ├─amd64v1 │ │ │ │ └─amd64v3 │ │ │ └─testdata │ │ ├─testdata │ │ │ ├─testexithooks │ │ │ ├─testfaketime │ │ │ ├─testprog │ │ │ ├─testprogcgo │ │ │ │ └─windows │ │ │ ├─testprognet │ │ │ ├─testwinlib │ │ │ ├─testwinlibsignal │ │ │ ├─testwinlibthrow │ │ │ └─testwinsignal │ │ └─trace │ ├─sort │ ├─strconv │ │ └─testdata │ ├─strings │ ├─sync │ │ └─atomic │ ├─syscall │ │ └─js │ ├─testdata │ ├─testing │ │ ├─fstest │ │ ├─internal │ │ │ └─testdeps │ │ ├─iotest │ │ └─quick │ ├─text │ │ ├─scanner │ │ ├─tabwriter │ │ └─template │ │ ├─parse │ │ └─testdata │ ├─time │ │ ├─testdata │ │ └─tzdata │ ├─unicode │ │ ├─utf16 │ │ └─utf8 │ ├─unsafe │ └─vendor │ └─golang.org │ └─x │ ├─crypto │ │ ├─chacha20 │ │ ├─chacha20poly1305 │ │ ├─cryptobyte │ │ │ └─asn1 │ │ ├─hkdf │ │ └─internal │ │ ├─alias │ │ └─poly1305 │ ├─net │ │ ├─dns │ │ │ └─dnsmessage │ │ ├─http │ │ │ ├─httpguts │ │ │ └─httpproxy │ │ ├─http2 │ │ │ └─hpack │ │ ├─idna │ │ ├─lif │ │ ├─nettest │ │ └─route │ ├─sys │ │ └─cpu │ └─text │ ├─secure │ │ └─bidirule │ ├─transform │ └─unicode │ ├─bidi │ └─norm └─test ├─abi ├─alias3.dir ├─asmhdr.dir ├─bench │ ├─garbage │ └─go1 ├─chan ├─closure3.dir ├─closure5.dir ├─codegen ├─ddd2.dir ├─dwarf │ └─dwarf.dir ├─fixedbugs │ ├─bug083.dir │ ├─bug088.dir │ ├─bug106.dir │ ├─bug133.dir │ ├─bug160.dir │ ├─bug191.dir │ ├─bug222.dir │ ├─bug248.dir │ ├─bug282.dir │ ├─bug306.dir │ ├─bug313.dir │ ├─bug322.dir │ ├─bug324.dir │ ├─bug335.dir │ ├─bug345.dir │ ├─bug367.dir │ ├─bug369.dir │ ├─bug377.dir │ ├─bug382.dir │ ├─bug392.dir │ ├─bug396.dir │ ├─bug404.dir │ ├─bug407.dir │ ├─bug414.dir │ ├─bug415.dir │ ├─bug424.dir │ ├─bug437.dir │ ├─bug448.dir │ ├─bug460.dir │ ├─bug465.dir │ ├─bug466.dir │ ├─bug467.dir │ ├─bug468.dir │ ├─bug472.dir │ ├─bug478.dir │ ├─bug479.dir │ ├─bug480.dir │ ├─bug488.dir │ ├─bug492.dir │ ├─bug504.dir │ ├─bug506.dir │ ├─bug507.dir │ ├─bug510.dir │ ├─bug511.dir │ ├─gcc67968.dir │ ├─issue10066.dir │ ├─issue10219.dir │ ├─issue10700.dir │ ├─issue11053.dir │ ├─issue11656.dir │ ├─issue12677.dir │ ├─issue13777.dir │ ├─issue14164.dir │ ├─issue14331.dir │ ├─issue15071.dir │ ├─issue15470.dir │ ├─issue15514.dir │ ├─issue15548.dir │ ├─issue15572.dir │ ├─issue15609.dir │ ├─issue15646.dir │ ├─issue15838.dir │ ├─issue15920.dir │ ├─issue16133.dir │ ├─issue16317.dir │ ├─issue16616.dir │ ├─issue18419.dir │ ├─issue18895.dir │ ├─issue18911.dir │ ├─issue19028.dir │ ├─issue19261.dir │ ├─issue19467.dir │ ├─issue19507.dir │ ├─issue19548.dir │ ├─issue19699.dir │ ├─issue19764.dir │ ├─issue20014.dir │ │ └─a │ ├─issue20682.dir │ ├─issue21120.dir │ ├─issue22877.dir │ ├─issue22941.dir │ ├─issue22962.dir │ ├─issue23179.dir │ ├─issue23311.dir │ ├─issue24693.dir │ ├─issue24761.dir │ ├─issue24801.dir │ ├─issue25055.dir │ ├─issue25984.dir │ ├─issue26341.dir │ ├─issue27836.dir │ ├─issue29610.dir │ ├─issue29612.dir │ │ ├─p1 │ │ │ └─ssa │ │ └─p2 │ │ └─ssa │ ├─issue29919.dir │ ├─issue30659.dir │ ├─issue30862.dir │ │ ├─a │ │ └─b │ ├─issue30907.dir │ ├─issue30908.dir │ ├─issue31053.dir │ ├─issue31252.dir │ ├─issue31636.dir │ ├─issue31637.dir │ ├─issue31959.dir │ ├─issue32595.dir │ ├─issue32778.dir │ ├─issue32901.dir │ ├─issue32922.dir │ ├─issue33013.dir │ ├─issue33020.dir │ ├─issue33020a.dir │ ├─issue33158.dir │ ├─issue33219.dir │ ├─issue33739.dir │ ├─issue33866.dir │ ├─issue34503.dir │ ├─issue34577.dir │ ├─issue3552.dir │ ├─issue35586.dir │ ├─issue35739.dir │ ├─issue36085.dir │ ├─issue37513.dir │ ├─issue37837.dir │ ├─issue40252.dir │ ├─issue42284.dir │ ├─issue42401.dir │ ├─issue4252.dir │ ├─issue43164.dir │ ├─issue4326.dir │ ├─issue43479.dir │ ├─issue43551.dir │ ├─issue43633.dir │ ├─issue4370.dir │ ├─issue43962.dir │ ├─issue44325.dir │ ├─issue44330.dir │ ├─issue44335.dir │ ├─issue44355.dir │ ├─issue44370.dir │ ├─issue44732.dir │ │ ├─bar │ │ └─foo │ ├─issue4510.dir │ ├─issue45503.dir │ ├─issue4590.dir │ ├─issue46653.dir │ │ └─bad │ ├─issue47068.dir │ ├─issue47087.dir │ ├─issue47131.dir │ ├─issue47185.dir │ │ └─bad │ ├─issue47201.dir │ ├─issue47317.dir │ ├─issue48088.dir │ ├─issue4879.dir │ ├─issue49016.dir │ ├─issue49094.dir │ ├─issue49143.dir │ ├─issue4932.dir │ ├─issue4964.dir │ ├─issue50788.dir │ ├─issue5105.dir │ ├─issue5125.dir │ ├─issue51291.dir │ ├─issue52128.dir │ ├─issue52279.dir │ ├─issue5259.dir │ ├─issue52590.dir │ ├─issue5260.dir │ ├─issue52856.dir │ ├─issue52862.dir │ ├─issue5291.dir │ ├─issue5470.dir │ ├─issue54912.dir │ ├─issue5614.dir │ ├─issue56280.dir │ ├─issue56778.dir │ ├─issue5755.dir │ ├─issue58563.dir │ ├─issue5910.dir │ ├─issue5957.dir │ ├─issue6295.dir │ ├─issue6513.dir │ ├─issue6789.dir │ ├─issue7023.dir │ ├─issue7648.dir │ ├─issue7995b.dir │ ├─issue8060.dir │ ├─issue8280.dir │ ├─issue9355.dir │ ├─issue9537.dir │ └─issue9608.dir ├─import2.dir ├─import4.dir ├─interface │ ├─embed1.dir │ ├─embed3.dir │ ├─private.dir │ └─recursive1.dir ├─intrinsic.dir ├─ken ├─linkname.dir ├─method4.dir ├─retjmp.dir ├─runtime ├─stress ├─syntax ├─typeparam │ ├─absdiffimp.dir │ ├─absdiffimp2.dir │ ├─aliasimp.dir │ ├─chansimp.dir │ ├─dedup.dir │ ├─factimp.dir │ ├─gencrawler.dir │ ├─geninline.dir │ ├─issue46461b.dir │ ├─issue47514c.dir │ ├─issue47775.dir │ ├─issue47892.dir │ ├─issue47892b.dir │ ├─issue48094.dir │ ├─issue48094b.dir │ ├─issue48185a.dir │ ├─issue48185b.dir │ ├─issue48280.dir │ ├─issue48306.dir │ ├─issue48337a.dir │ ├─issue48337b.dir │ ├─issue48454.dir │ ├─issue48462.dir │ ├─issue48716.dir │ ├─issue48962.dir │ ├─issue49027.dir │ ├─issue49241.dir │ ├─issue49246.dir │ ├─issue49497.dir │ ├─issue49524.dir │ ├─issue49536.dir │ ├─issue49659.dir │ ├─issue49667.dir │ ├─issue49893.dir │ ├─issue50121.dir │ ├─issue50121b.dir │ ├─issue50437.dir │ ├─issue50481b.dir │ ├─issue50481c.dir │ ├─issue50485.dir │ ├─issue50486.dir │ ├─issue50552.dir │ ├─issue50561.dir │ ├─issue50598.dir │ ├─issue50841.dir │ ├─issue51219.dir │ ├─issue51219b.dir │ ├─issue51250a.dir │ ├─issue51367.dir │ ├─issue51423.dir │ ├─issue51836.dir │ ├─issue52117.dir │ ├─issue54302.dir │ ├─listimp.dir │ ├─listimp2.dir │ ├─mapimp.dir │ ├─mapsimp.dir │ ├─mdempsky │ │ ├─1.dir │ │ ├─10.dir │ │ ├─12.dir │ │ ├─3.dir │ │ ├─4.dir │ │ ├─7.dir │ │ └─8.dir │ ├─mincheck.dir │ ├─minimp.dir │ ├─mutualimp.dir │ ├─orderedmapsimp.dir │ ├─pairimp.dir │ ├─recoverimp.dir │ ├─select.dir │ ├─setsimp.dir │ ├─sliceimp.dir │ ├─stringerimp.dir │ ├─structinit.dir │ └─valimp.dir └─uintptrescapes.dir
Go 语言的源码复用建立在包(package)基础之上。包通过 package, import, GOPATH 操作完成。
Go语言使用包(package)来组织源码,包是源码复用的基础。与其他编程语言不同,Go语言的包具有代码可见性,包的使用通过package
、import
和GOPATH
操作完成。
1. main
包
Go语言的入口函数main()
所在的包叫做main
包。如果main
包想要使用其他代码,需要通过import
导入。
2. 包
在src
目录中,我们以代码包的形式组织和保存Go源码文件。每个代码包与src
目录下的文件夹一一对应,每个子目录都是一个代码包。
要注意的是,代码包的包名和文件目录名可以不一致,但同一个目录下的所有.go
文件的第一行包定义必须一致。
一个目录下的同级文件属于同一个包,包名建议设为目录名,但也可以不同名。包名为main
的包是应用程序的入口包,其他包不能使用它。
在同一个包下的文件属于同一个工程文件,无需导入包即可直接使用。
包可以进行嵌套定义,对应的是嵌套目录结构,但包名应与所在目录一致。
包中的标识符首字母大小写决定了其是否可以被导出,只有首字母大写的标识符可以被其他包导入和使用,视为公共资源。
3. 导入
要引用其他包,可以使用import
关键字,可以单个导入或批量导入。
A. 通常导入
// 单个导入 import "package" // 批量导入 import ( "package1" "package2" )
B. 点操作
import ( . "fmt" )
点操作允许省略包名前缀,直接调用包的函数,例如fmt.Println("hello world")
可以简写为Println("hello world")
。
C. 别名
可以为导入的包定义别名,使用时可以使用别名作为前缀调用包的函数。
import ( p1 "package1" p2 "package2" ) // 使用别名调用包函数 p1.Method()
D. _
操作
使用_
操作导入包时,只执行包的初始化操作,并不使用包内的其他函数、常量等资源,相当于匿名导入。
import ( "database/sql" _ "github.com/ziutek/mymysql/godrv" )
_
操作将执行包中的init()
函数,但不直接使用包。
导入包的路径可以是相对路径或绝对路径,推荐使用绝对路径。
4. GOPATH
环境变量
在import
导入包时,Go会从GOROOT
和GOPATH
环境变量指定的目录中的src/package
检索导入的包。如果找不到包,则导入失败。
GOROOT
是Go内置包的位置。GOPATH
是自定义包的位置。
通常在开发Go项目时,需要将GOPATH
设置为项目目录,该目录下的src
中的包可以被导入和使用。
5. init()
包初始化
在Go语言中,init()
和main()
是保留函数。我们可以在源码中定义init()
函数,它会在包被导入时执行。如果在main
函数中导入包,并且包中有init()
函数,那么init()
中的代码会在main()
函数执行之前执行,用于初始化包所需的特定资源。
以下是包和主函数的源码示例:
// 包源码:src/userPackage/tool.go package userPackage import "fmt" func init() { fmt.Println("tool init") } // 主函数源码:src/main.go package main import "userPackage" func main() { fmt.Println("main run") // 使用userPackage userPackage.SomeFunc() }
执行时,先输出tool init
,然后输出main run
。
init()
和main()
函数的区别如下:
相同点:
- 两个函数在定义时不能有参数和返回值。
- 函数只能由Go程序自动调用,不可引用。
不同点:
init()
函数可以在任意包中定义,且可以定义多个。main()
函数只能在main
包中定义,且只能定义一个。
两个函数的执行顺序:
- 在
main
包中的Go文件总是会被执行。 - 对于同一个Go文件,
init()
函数按照从上到下的顺序调用。 - 对于同一个包中的不同文件,按文件名的字符串排序,然后依次调用各文件中的
init()
函数。 - 对于不同的包,如果它们没有相互依赖关系,按照
main
包中import
的顺序调用各包的init()
函数。 - 如果存在依赖关系,被依赖的包先初始化,例如:
main
导入A
导入B
导入C
,初始化顺序为C->B->A->main
。
避免循环导入,例如:A
导入B
导入C
导入A
。
一个包可以被多个包导入,但只会初始化一次。
6. 管理外部包
Go允许导入不同代码库的代码。可以使用go get
命令将要导入的外部包下载到GOPATH
对应的目录中。
例如,我们想使用Go语言连接MySQL数据库,需要先下载MySQL的数据包。在终端中
运行以下命令:
$ go get github.com/go-sql-driver/mysql
安装完成后,可以在GOPATH
的src
目录下看到对应的文件包目录。
通过go install
命令可以编译包文件。非main
包在编译后会生成一个.a
文件,用于后续可执行程序的链接使用。标准库中包对应的源码路径在$GOROOT/src
下,而编译后的.a
文件路径在$GOROOT/pkg/darwin_amd64
下。
以上就是关于Go语言中包的使用的介绍。
7. 综合代码案例:
package main import ( "fmt" "userPackage" ) func main() { fmt.Println("main run") userPackage.SomeFunc() } // 包源码:src/userPackage/tool.go package userPackage import "fmt" func init() { fmt.Println("tool init") } func SomeFunc() { fmt.Println("This is a function from userPackage.") }
在上述代码中,我们定义了main
包作为程序的入口包。在main
函数中,我们使用import
导入了自定义的userPackage
包,并调用了其中的SomeFunc
函数。
在userPackage
包的源码文件tool.go
中,我们定义了一个init
函数,在包被导入时执行。同时,我们还定义了SomeFunc
函数,用于在main
函数中调用。
运行该程序,输出结果如下:
tool init main run This is a function from userPackage.
这个代码案例展示了包的使用和初始化过程,以及在main
函数中导入和调用自定义包中的函数。
今日学习总结:
通过今天的学习,我们深入了解了Go语言中包的使用和管理。我们了解了包的定义和命名规则,以及包的可见性。通过import
关键字,我们可以导入其他包,并通过别名和点操作来简化调用。我们还学习了包的初始化过程和init()
函数的特殊作用。此外,我们介绍了GOPATH
环境变量的重要性和外部包的管理方式。通过这些知识,我们可以更好地组织和管理自己的Go代码,提高开发效率。
结语
通过今天的学习,您已经踏上了Golang的学习之旅。在未来的日子里,您将探索Golang的各个方面,从基础概念到高级技巧,从实际应用到性能优化。
学习一门编程语言是一个持续的过程,每一天都是您向Golang的精通迈进的重要一步。我鼓励您坚持每天学习,保持热情和好奇心,解决挑战并享受成功的喜悦。
在您的学习旅程中,不要忘记参与社区和与其他Golang开发者交流。分享您的见解和经验,向他人学习,并在开源项目或实际应用中展示您的技能。
如果您在学习过程中遇到困难或有任何问题,不要犹豫向社区和专家寻求帮助。持续学习,勇敢探索,您将在Golang领域取得令人瞩目的成就。
最后,感谢您的阅读和支持!祝愿您在未来的每一天中都能够成为一名精通Golang的开发者!
期待听到您在学习过程中的进展和成就。如果您需要进一步的帮助,请随时告诉我。祝您在学习Golang的旅程中取得巨大成功!
点击
下方名片
,加入IT技术核心学习团队。一起探索科技的未来,共同成长。
如果您在学习过程中有任何疑惑,请点击下方名片,带您一对一快速入门 Go语言 的世界 ~