Packages Allowed in the Go Playground
The Go Playground allows importing most packages of the standard library, but there are some notable exceptions:
Restricted Packages:
Additional Considerations:
Extensive Testing of Importable Packages:
The following Playground test exhaustively imports all packages from the standard library. This demonstrates that they can be imported, but it does not guarantee that all or even any functionality from these packages can be used.
Playground Test:
package main import ( // Import all packages from the standard library. _ "archive/tar" _ "archive/zip" _ "bufio" _ "bytes" _ "compress/bzip2" _ "compress/flate" _ "compress/gzip" _ "compress/lzw" _ "compress/zlib" _ "container/heap" _ "container/list" _ "container/ring" _ "crypto" _ "crypto/aes" _ "crypto/cipher" _ "crypto/des" _ "crypto/dsa" _ "crypto/ecdsa" _ "crypto/elliptic" _ "crypto/hmac" _ "crypto/md5" _ "crypto/rand" _ "crypto/rc4" _ "crypto/rsa" _ "crypto/sha1" _ "crypto/sha256" _ "crypto/sha512" _ "crypto/subtle" _ "crypto/tls" _ "crypto/x509" _ "crypto/x509/pkix" _ "database/sql" _ "database/sql/driver" _ "debug/dwarf" _ "debug/elf" _ "debug/gosym" _ "debug/macho" _ "debug/pe" _ "debug/plan9obj" _ "encoding" _ "encoding/ascii85" _ "encoding/asn1" _ "encoding/base32" _ "encoding/base64" _ "encoding/binary" _ "encoding/csv" _ "encoding/gob" _ "encoding/hex" _ "encoding/json" _ "encoding/pem" _ "encoding/xml" _ "errors" _ "expvar" _ "flag" _ "fmt" _ "go/ast" _ "go/build" _ "go/constant" _ "go/doc" _ "go/format" _ "go/importer" _ "go/parser" _ "go/printer" _ "go/scanner" _ "go/token" _ "go/types" _ "hash" _ "hash/adler32" _ "hash/crc32" _ "hash/crc64" _ "hash/fnv" _ "html" _ "html/template" _ "image" _ "image/color" _ "image/color/palette" _ "image/draw" _ "image/gif" _ "image/jpeg" _ "image/png" _ "index/suffixarray" _ "io" _ "io/ioutil" _ "log" _ "log/syslog" _ "math" _ "math/big" _ "math/cmplx" _ "math/rand" _ "mime" _ "mime/multipart" _ "mime/quotedprintable" _ "net" _ "net/http" _ "net/http/cgi" _ "net/http/cookiejar" _ "net/http/fcgi" _ "net/http/httptest" _ "net/http/httputil" _ "net/http/pprof" _ "net/mail" _ "net/rpc" _ "net/rpc/jsonrpc" _ "net/smtp" _ "net/textproto" _ "net/url" _ "os" _ "os/exec" _ "os/signal" _ "os/user" _ "path" _ "path/filepath" _ "reflect" _ "regexp" _ "regexp/syntax" _ "runtime" // _ "runtime/cgo" // ERROR: missing Go type information // for global symbol: .dynsym size 60 _ "runtime/debug" _ "runtime/pprof" _ "runtime/race" _ "runtime/trace" _ "sort" _ "strconv" _ "strings" _ "sync" _ "sync/atomic" _ "syscall" _ "testing" _ "testing/iotest" _ "testing/quick" _ "text/scanner" _ "text/tabwriter" _ "text/template" _ "text/template/parse" _ "time" _ "unicode" _ "unicode/utf16" _ "unicode/utf8" _ "unsafe" ) func main() { println("ok") }
Note: The only package that caused an error in this test was runtime/cgo, which lacks Go type information for one or more global symbols.
The above is the detailed content of Which Go standard library packages are importable in the Go Playground, and are there limitations?. For more information, please follow other related articles on the PHP Chinese website!