Pakej perpustakaan standard manakah yang dihadkan dalam Go Playground, dan mengapa?

Linda Hamilton
Lepaskan: 2024-11-22 06:46:14
asal
155 orang telah melayarinya

Which standard library packages are restricted in the Go Playground, and why?

Import Terhad di Taman Permainan Go

Taman Permainan Go menawarkan persekitaran yang mudah untuk menguji coretan kod Go. Walau bagaimanapun, terdapat sekatan tertentu untuk pakej yang boleh diimport di Taman Permainan.

Memahami Sekatan

Butang "Perihal" dalam Taman Permainan mengandungi maklumat berikut:

"Taman permainan boleh menggunakan kebanyakan perpustakaan standard, dengan beberapa pengecualian."

Pernyataan ini menjelaskan bahawa pakej daripada perpustakaan standard umumnya boleh diimport, tetapi bukan semua.

Import daripada Perpustakaan Standard

Pakej perpustakaan standard disenaraikan di bawah bahagian "Perpustakaan standard" pada halaman "Pakej". Walau bagaimanapun, pakej yang disenaraikan di bawah bahagian "Lain-lain", seperti golang.org/x/exp/ebnf, tidak boleh diimport di Taman Permainan.

Mengapa Sekatan?

Import terhad Taman Permainan sebahagian besarnya disebabkan oleh pertimbangan keselamatan dan kefungsian. Mengimport pakej luaran boleh memperkenalkan risiko keselamatan dan isu prestasi, terutamanya dalam persekitaran Taman Permainan yang tidak terhad.

Ujian Komprehensif Import Perpustakaan Standard

Untuk menunjukkan kebolehimportan pakej perpustakaan standard, perkara berikut coretan kod mengimport setiap pakej dalam pustaka standard (tidak termasuk yang tanpa fail sumber Go boleh bina):

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")
}
Salin selepas log masuk

Cuba ia keluar di Taman Permainan untuk melihat senarai lengkap pakej boleh import.

Atas ialah kandungan terperinci Pakej perpustakaan standard manakah yang dihadkan dalam Go Playground, dan mengapa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan