Heim >Backend-Entwicklung >Golang >Welche Standardbibliothekspakete sind im Go Playground eingeschränkt und warum?
Der Go Playground bietet eine praktische Umgebung zum Testen von Go-Codefragmenten. Es gibt jedoch bestimmte Einschränkungen, welche Pakete im Playground importiert werden können.
Die Schaltfläche „Info“ im Playground enthält die folgenden Informationen:
„Der Spielplatz kann mit einigen Ausnahmen den größten Teil der Standardbibliothek nutzen.“
Diese Aussage stellt klar, dass Pakete aus der Standardbibliothek im Allgemeinen importierbar sind, dies jedoch nicht alle.
Die Standardbibliothekspakete sind im Abschnitt „Standardbibliothek“ auf der Seite „Pakete“ aufgeführt. Pakete, die im Abschnitt „Andere“ aufgeführt sind, wie z. B. golang.org/x/exp/ebnf, können jedoch nicht in den Playground importiert werden.
Die eingeschränkten Importe des Playgrounds sind größtenteils auf Sicherheits- und Funktionalitätserwägungen zurückzuführen. Das Importieren externer Pakete kann Sicherheitsrisiken und Leistungsprobleme mit sich bringen, insbesondere in der uneingeschränkten Umgebung des Playgrounds.
Um die Importierbarkeit von Standardbibliothekspaketen zu demonstrieren, Folgendes Code-Snippet importiert jedes Paket in der Standardbibliothek (mit Ausnahme derjenigen ohne erstellbare Go-Quelldateien):
package main import ( _ "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/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") }
Probieren Sie es in der aus Playground, um die vollständige Liste der importierbaren Pakete anzuzeigen.
Das obige ist der detaillierte Inhalt vonWelche Standardbibliothekspakete sind im Go Playground eingeschränkt und warum?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!