Go Playground에서는 어떤 표준 라이브러리 패키지가 제한되어 있으며 그 이유는 무엇입니까?

Linda Hamilton
풀어 주다: 2024-11-22 06:46:14
원래의
171명이 탐색했습니다.

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

Go Playground에서 제한된 가져오기

Go Playground는 Go 코드 조각을 테스트할 수 있는 편리한 환경을 제공합니다. 그러나 Playground에서 가져올 수 있는 패키지에는 특정 제한 사항이 있습니다.

제한 사항 이해

Playground의 "정보" 버튼에는 다음 정보가 포함되어 있습니다.

"놀이터는 일부 예외를 제외하고 대부분의 표준 라이브러리를 사용할 수 있습니다."

이 설명은 표준 라이브러리의 패키지가 일반적으로 가져올 수 있지만 전부는 아닙니다.

표준 라이브러리에서 가져오기

표준 라이브러리 패키지는 "패키지" 페이지의 "표준 라이브러리" 섹션에 나열되어 있습니다. 하지만 golang.org/x/exp/ebnf와 같이 "기타" 섹션에 나열된 패키지는 플레이그라운드에서 가져올 수 없습니다.

제한이 적용되는 이유는 무엇입니까?

플레이그라운드의 가져오기가 제한되어 있습니다. 주로 보안 및 기능 고려 사항 때문입니다. 외부 패키지를 가져오면 특히 제한되지 않은 Playground 환경에서 보안 위험과 성능 문제가 발생할 수 있습니다.

표준 라이브러리 가져오기에 대한 종합 테스트

표준 라이브러리 패키지의 가져오기 가능성을 입증하려면 다음을 수행하세요. 코드 조각은 표준 라이브러리의 모든 패키지를 가져옵니다(빌드 가능한 Go 소스 파일이 없는 패키지 제외).

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")
}
로그인 후 복사

해 보세요. 가져올 수 있는 패키지의 전체 목록을 보려면 Playground에서 확인하세요.

위 내용은 Go Playground에서는 어떤 표준 라이브러리 패키지가 제한되어 있으며 그 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿