我无法在http://play.golang.org/上的go操场上找到可以导入的软件包列表.我试图使用(显然是实验性的)ebnf包.但是,即使是短程序也不会导入golang.org(第4行导入中断):
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)
}
Run Code Online (Sandbox Code Playgroud)
是否在任何地方都说明golang.org/src/中只有基础软件包会导入(如果是这种情况)?
我真的很想玩这个实验包,甚至是非实验性的补充库,比如currency在操场上.
在About操场上按钮给出了一些提示:
游乐场可以使用大部分标准库,但有一些例外.
通过标准库中的封装标准库的意思,这是上市的软件包页面,根据标准库部分." 其他"部分下列出的软件包不符合条件(这是您尝试过的软件包 - 软件包golang.org/x/exp/ebnf属于" 其他"类别下列出的实验和已弃用软件包).
如果您想了解有关Playground实现的更多信息,必读链接:
这是一个详尽的游乐场测试,用于导入所有标准库包,以显示它们至少可以导入,但这并不意味着可以从中合理使用所有(甚至任何东西).标准库中唯一提供编译错误的包是runtime/cgo; 由于显而易见的原因,不包括没有可构建的Go源文件的"包"(因为如果文件夹不包含至少一个可构建的Go源文件,则该文件夹不是包).
这是Playground Link自己尝试一下.
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")
}
Run Code Online (Sandbox Code Playgroud)