本文详细介绍了Go语言中包的使用和包管理的相关知识。包是组织和复用源码的基本单元,具有代码可见性。我们了解了main包、包的命名规则以及包的导入方式。同时,解释了包的初始化过程和使用外部包的方法。最后,我们介绍了GOPATH环境变量的作用和包的编译与安装。通过本文的学习,读者可以全面了解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
操作完成。
main
包Go语言的入口函数main()
所在的包叫做main
包。如果main
包想要使用其他代码,需要通过import
导入。
在src
目录中,我们以代码包的形式组织和保存Go源码文件。每个代码包与src
目录下的文件夹一一对应,每个子目录都是一个代码包。
要注意的是,代码包的包名和文件目录名可以不一致,但同一个目录下的所有.go
文件的第一行包定义必须一致。
一个目录下的同级文件属于同一个包,包名建议设为目录名,但也可以不同名。包名为main
的包是应用程序的入口包,其他包不能使用它。
在同一个包下的文件属于同一个工程文件,无需导入包即可直接使用。
包可以进行嵌套定义,对应的是嵌套目录结构,但包名应与所在目录一致。
包中的标识符首字母大小写决定了其是否可以被导出,只有首字母大写的标识符可以被其他包导入和使用,视为公共资源。
要引用其他包,可以使用import
关键字,可以单个导入或批量导入。
// 单个导入
import "package"
// 批量导入
import (
"package1"
"package2"
)
import (
. "fmt"
)
点操作允许省略包名前缀,直接调用包的函数,例如fmt.Println("hello world")
可以简写为Println("hello world")
。
可以为导入的包定义别名,使用时可以使用别名作为前缀调用包的函数。
import (
p1 "package1"
p2 "package2"
)
// 使用别名调用包函数
p1.Method()
_
操作使用_
操作导入包时,只执行包的初始化操作,并不使用包内的其他函数、常量等资源,相当于匿名导入。
import (
"database/sql"
_ "github.com/ziutek/mymysql/godrv"
)
_
操作将执行包中的init()
函数,但不直接使用包。
导入包的路径可以是相对路径或绝对路径,推荐使用绝对路径。
GOPATH
环境变量在import
导入包时,Go会从GOROOT
和GOPATH
环境变量指定的目录中的src/package
检索导入的包。如果找不到包,则导入失败。
GOROOT
是Go内置包的位置。GOPATH
是自定义包的位置。通常在开发Go项目时,需要将GOPATH
设置为项目目录,该目录下的src
中的包可以被导入和使用。
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()
函数的区别如下:
相同点:
不同点:
init()
函数可以在任意包中定义,且可以定义多个。main()
函数只能在main
包中定义,且只能定义一个。两个函数的执行顺序:
main
包中的Go文件总是会被执行。init()
函数按照从上到下的顺序调用。init()
函数。main
包中import
的顺序调用各包的init()
函数。main
导入A
导入B
导入C
,初始化顺序为C->B->A->main
。避免循环导入,例如:A
导入B
导入C
导入A
。
一个包可以被多个包导入,但只会初始化一次。
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语言中包的使用的介绍。
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的旅程中取得巨大成功!