duanjie5570 2016-04-04 17:39
浏览 29
已采纳

可以在运动场中进口哪些包裹?

I had trouble finding a list of what packages may be imported in the go playground at http://play.golang.org/. I was trying to use the (apparently experimental) package for ebnf. However even a short program won't import from golang.org (breaks on the import on line 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)
}

Is it stated anywhere that only base packages in golang.org/src/ would import (if that's the case)?

I'd really like to play with this experimental package and even non-experimental supplemental libraries like currency in the playground.

  • 写回答

3条回答 默认 最新

  • douzaipou3327 2016-04-04 18:35
    关注

    The <kbd>About</kbd> button on the Playground gives some hint:

    The playground can use most of the standard library, with some exceptions.

    By the standard library the packages of the standard library are meant, which are listed on the Packages page, under the Standard library section. Packages listed under the Other section do not qualify (which is what you have tried - package golang.org/x/exp/ebnf falls under the experimental and deprecated packages listed under the Other category).

    A must-read link if you want to know more about the Playground implementation:

    The Go Blog: Inside the Go Playground

    Here is an exhaustive playground test to import all the standard library packages to show they at least can be imported, but that doesn't mean everything (or even anything) can be reasonably used from them. The only package from the standard library that gives a compile error is runtime/cgo; "packages" without a buildable Go source file are not included for obvious reasons (because a folder is not a package if it does not contain at least one buildable Go source file).

    Here's the Playground Link to try it yourself.

    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")
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在
  • ¥15 前端echarts坐标轴问题