我在http://play.golang.org/上无法找到在go park中导入哪些软件包的列表时遇到了麻烦。我正在尝试为ebnf使用(显然是实验性的)软件包。但是,即使是简短的程序也不会从中golang.org导入(第4行的导入中断):
golang.org
package main import "fmt" import "golang.org/x/exp/ebnf" const g = ` Production = name "=" [ Expression ] "." . Expression = Alternative { "|" Alternative } . Alternative = Term { Term } . Term = name | token [ "…" token ] | Group | Option | Repetition . Group = "(" Expression ")" . Option = "[" Expression "]" . Repetition = "{" Expression "}" .` func main() { fmt.Println(g) }
是否在只有golang.org/src/中的基本软件包会导入的地方声明(如果是这种情况)?
我真的很想玩这个实验性程序包,甚至喜欢currency在操场上使用非实验性补充库。
currency
在About操场上按钮给出了一些提示:
About
除了一些例外,游乐场可以使用大多数标准库。
通过 标准库 中的封装 标准库 的意思,这是上市的 软件包 页面,根据 标准库 部分。 其他 部分下列出的软件包不符合要求(这是您尝试过的- 该软件包golang.org/x/exp/ebnf属于“ 其他” 类别下列出的实验性和不推荐使用的软件包)。
golang.org/x/exp/ebnf
如果您想进一步了解Playground实施,则必须阅读该链接:
围棋博客:围棋场内
这是一个详尽的运动场测试,用于导入所有标准库包,以表明它们至少可以导入,但这并不意味着可以合理地使用它们中的所有( 甚至任何东西 )。标准库中唯一出现编译错误的软件包是runtime/cgo; 出于明显的原因,不包含没有可构建Go源文件的“软件包”(因为如果文件夹不包含至少一个可构建Go源文件,则该文件夹不是软件包)。
runtime/cgo
这是Playground链接,您可以自己尝试。
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" // _ "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") }