programing

Golang 미사용 가져 오기 오류를 비활성화하는 방법

nasanasas 2020. 10. 8. 08:05
반응형

Golang 미사용 가져 오기 오류를 비활성화하는 방법


기본적으로 Go는 사용하지 않는 가져 오기를 오류로 간주하여 가져 오기를 삭제해야합니다. 이 동작을 변경할 희망이 있는지 알고 싶습니다. 예를 들어 경고로 줄입니다.

이 문제는 Go에서 코딩을 즐기지 못하게하는 매우 성가신 문제를 발견했습니다. 예를 들어, 일부 코드를 테스트하여 세그먼트 / 기능을 비활성화했습니다. lib의 일부 기능은 더 이상 사용되지 않지만 (예 : fmt, 오류 등) 약간의 테스트 후에 기능을 다시 활성화해야합니다. 이제 해당 가져 오기를 제거하지 않으면 프로그램이 컴파일되지 않습니다. 몇 분 후 lib를 다시 가져와야합니다.

나는 GAE 프로그램을 개발할 때이 과정을 몇 번이고 반복했습니다.


_패키지 이름 앞에 밑줄 ( )을 추가하면 사용하지 않는 가져 오기 오류가 무시됩니다.

다음은이를 사용하는 방법의 예입니다.

import (
    "log"
    "database/sql"

    _ "github.com/go-sql-driver/mysql"
)

부작용 (초기화)만을 위해 패키지를 가져 오려면 빈 식별자를 명시 적 패키지 이름으로 사용하십시오.

https://golang.org/ref/spec#Import_declarations 에서 자세히보기


var _ = fmt.Printf트릭은 여기에 도움이됩니다.


나는 같은 문제를 가지고있다. 나는 그들이 사용하지 않는 가져 오기 및 변수를 허용하지 않도록 언어를 구현 한 이유를 이해하지만 개인적으로 코드를 작성할 때이 기능이 성가시다는 것을 알았습니다. 이 문제를 해결하기 위해 컴파일러를 변경하여 사용하지 않는 변수와 코드 가져 오기를 허용하는 선택적 플래그를 허용했습니다.

관심이 있으시면 https://github.com/dtnewman/modified_golang_compiler 에서 확인할 수 있습니다 .

이제 go run -gcflags '-unused_pkgs'test.go 와 같은 명령을 사용하여 코드를 간단히 실행할 수 있으며 "사용하지 않는 가져 오기"오류가 발생하지 않습니다. 이 플래그를 생략하면 사용하지 않는 가져 오기를 허용하지 않는 기본값으로 돌아갑니다.

이렇게하려면 몇 가지 간단한 변경 만 필요했습니다. Go 순수 주의자들은 사용하지 않는 변수 / 가져 오기를 허용하지 않는 타당한 이유가 있기 때문에 이러한 변경에 만족하지 않을 것입니다. 컴파일러.


goimports를 사용하십시오 . 기본적으로 gofmt브래드 피츠 패트릭 (Brad Fitzpatrick)이 작성한. 파일을 저장할 때마다 실행되도록 편집기를 구성 할 수 있습니다. 이 문제에 대해 다시는 걱정할 필요가 없습니다.


fmt개발 및 테스트하는 동안 콘솔에 대한 일반 인쇄용 패키지를 사용하는 경우 로그 패키지 에서 더 나은 솔루션을 찾을 수 있습니다 .


일부 코드 if false { ... }주석 처리하는 데 사용 합니다 . 중괄호 안의 코드는 구문 상 정확해야하지만 그렇지 않으면 말도 안되는 코드 일 수 있습니다.


이것을 문서 위에 올려 놓고 사용하지 않은 수입품은 잊어 버리십시오.

import (
    "bufio"
    "fmt"
    "os"
    "path/filepath"
)

var _, _, _, _ = fmt.Println, bufio.NewReader, os.Open, filepath.IsAbs

참고 URL : https://stackoverflow.com/questions/19560334/how-to-disable-golang-unused-import-error

반응형