모듈 내 패키지 관리
우선 go.mod를 수정하기 위해 go mod edit를 도입했지만 여기에는 두 가지 결함이 있습니다.
1 먼저 -require는 "package@version을 허용해야 합니다. "이 양식은 필수이며 문서에 지정된 마스터 및 최신 플래그를 인식할 수 없습니다.
2. 둘째, 편집은 종속성 버전 수정, 패키지 이름 변경 및 특정 패키지 차단에만 적합합니다.
좋은 소식은 go get now에 모듈의 패키지를 추가/수정/업데이트하는 기능이 있다는 것입니다.
go 모듈을 완전히 경험하려면 GOPATH가 아닌 디렉토리를 선택하고 GO11MODULE=on을 설정해야 합니다. 이런 식으로 go get을 사용하면 현재 기본 모듈에만 영향을 미치고 GOPATH를 오염시키지 않습니다.
GOPATH가 아닌 경로에 프로젝트를 복제한 다음
go mod init [project name]
를 사용하여 모듈을 초기화합니다. 초기화된 디렉터리:
현재 go.mod는 여전히 비어 있습니다. go build가 go.mod를 업데이트한다는 것을 알고 있으므로 먼저 go build
기본적으로 go get을 사용하여 이제 go.mod가 업데이트되었으며 프로젝트가 성공적으로 컴파일되었습니다. 이것은 go.mod입니다.
module schanclient require ( github.com/PuerkitoBio/goquery v1.4.1 github.com/andybalholm/cascadia v1.0.0 // indirect github.com/chromedp/chromedp v0.1.2 golang.org/x/net v0.0.0-20180826012351-8a410e7b638d // indirect )
indirect는 이 패키지가 모듈/패키지에 의존하지만 기본 모듈을 직접 가져와 사용하지 않는다는 의미입니다. 소위 간접 참조입니다.
일반적으로 go.mod는 기본 동작을 사용하여 패키지 관리를 잘 완료할 수 있지만, 생활에는 항상 예외가 있습니다.
Chromedp는 3개월 전 버전인 0.1.2를 사용하고 있습니다. Go 모드 편집에서는 버전 번호 또는 커밋 시간 + 체크섬을 명확하게 지정해야 합니다. 우리가 원하는 것이 아닙니다.
그렇다면 최신 태그 대신 최신 버전을 어떻게 사용할 수 있을까요?
아니면 최신 버전을 원하지 않고 특정 버전의 패키지가 필요한가요?
버전 선택 내용입니다.
go get의 새로운 기능 - 버전 선택
이전에 gopkg.in+go get과 같은 솔루션이 있었는데, 새로운 go get에서 지원하는 버전 선택은 이 솔루션의 추가 확장입니다. 규칙:
go get은 자동으로 패키지를 다운로드하여 설치한 다음 go.mod로 업데이트합니다.
버전이 지정되지 않은 경우 go get package [@version]를 사용하여 패키지의 지정된 버전을 설치할 수 있습니다. , 기본 동작은 go get과 동일합니다. package@latest와 동일합니다
version은 vx.y.z 형식이거나 커밋의 체크섬을 직접 사용할 수 있거나, master 또는 최신일 수 있습니다
버전이 최신인 경우, 태그가 있는 패키지의 경우 최신 커밋이 선택되고, 태그가 없는 패키지의 경우 최신 커밋이 선택됩니다.
버전이 마스터인 경우 패키지의 태그 여부에 관계없이 마스터의 최신 커밋이 선택됩니다. 브랜치가 선택됩니다
버전 이전에 >, >=를 사용할 수 있습니다.
go get -u=patch는 부 버전만 업데이트합니다(예: v1.2.4에서 v1.2.5로
패키지 버전을 수정하려면 다음으로 이동하세요). get package@specified version
그런 다음 chromedp를 최신 버전으로 변경하려면 매우 간단합니다. 지금:
go get github.com/chromedp/chromedp@master
이제 chromedp가 go.mod에서 업데이트되었습니다.
module schanclient require ( github.com/PuerkitoBio/goquery v1.4.1 github.com/andybalholm/cascadia v1.0.0 // indirect github.com/chromedp/chromedp v0.1.3-0.20180717231922-bf52fed0d3e6 golang.org/x/net v0.0.0-20180826012351-8a410e7b638d // indirect )
지금 추가 패키지를 추가하려면 어떻게 해야 할까요? ?
go get을 직접 사용하세요. 예를 들어, gorm을 사용하여 데이터베이스에 데이터를 저장하고 싶습니다.
go get github.com/jinzhu/gorm
Updated go.mod
module schanclient require ( github.com/PuerkitoBio/goquery v1.4.1 github.com/andybalholm/cascadia v1.0.0 // indirect github.com/chromedp/chromedp v0.1.3-0.20180717231922-bf52fed0d3e6 github.com/jinzhu/gorm v1.9.1 // indirect github.com/jinzhu/inflection v0.0.0-20180308033659-04140366298a // indirect golang.org/x/net v0.0.0-20180826012351-8a410e7b638d // indirect )
물론 최신 버전의 gorm이 추가된 것을 볼 수 있습니다. in main 모듈에서 사용할 import가 없으므로 간접적입니다.
v1.9 gorm을 사용하려면:
go get github.com/jinzhu/gorm@v1.9
안타깝게도 버전 선택은 메이저 버전에서 마이너 버전 순으로 이루어집니다. v1.9와 v1.9.1이 있는 경우 v1을 지정하면 자동으로 선택됩니다. .9 v1.9(이 경우 v1.9.1) 외에 다른 v1.9.z 태그가 없는 경우를 제외하고 가장 높은 부 버전 번호를 가진 버전을 선택합니다.
언급할 만한 또 다른 점은 go build and go test는 go.mod에 없는 패키지만 추가하고 go get에 의해 도입된 규칙을 덮어쓰거나 변경하지 않으므로 충돌에 대해 걱정할 필요가 없다는 것입니다.
venv+pip와 유사하다고 생각하시나요? 예, 이는 go의 패키지 관리 도구가 점차 현대화되고 있음을 보여줍니다.
패키지 차단, 패키지 삭제, 패키지 이름 바꾸기(예: golang.org/x/...에서 액세스할 수 없는 패키지)는 go mod edit의 기능입니다. 자세한 내용은 go help mod edit를 참조하세요.
추천:
언어 튜토리얼로 이동위 내용은 Go 모듈에서 패키지 관리를 위해 go get을 사용하는 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

GO 언어로 문자열 패키지를 마스터하면 텍스트 처리 기능과 개발 효율성이 향상 될 수 있습니다. 1) 함유 기능을 사용하여 하위 문자열을 확인하십시오. 2) 인덱스 기능을 사용하여 하위 문자열 위치를 찾으십시오. 빈 문자열을 확인하지 않고 큰 문자열 작동 성능 문제와 같은 일반적인 오류를 피하기 위해주의하십시오.

문자열 조작을 단순화하고 코드를보다 명확하고 효율적으로 만들 수 있기 때문에 이동중인 문자열 패키지에주의해야합니다. 1) strings.join을 사용하여 줄을 효율적으로 스플 라이스; 2) strings.fields를 사용하여 빈 문자로 문자열을 나눕니다. 3) 문자열을 통해 기판 위치를 찾으십시오. 4) 문자열을 대체하려면 strings.replaceall을 사용하십시오. 5) 현악기를 효율적으로 스플 라이스로 사용하여 strings.builder를 사용하십시오. 6) 예상치 못한 결과를 피하기 위해 항상 입력을 확인하십시오.

thestringspackageoisessentialponderfficientstringmanipulation.1) itofferssimpleyetpowerfultionsfortaskslikecheckingsubstringsandjoiningstrings.2) ithandlesunicodewell, withFunctionsLikestrings.fieldsforwhitespace-separatedValues.3) forperformance, st

whendecidingbetweengo'sbytespackageandstringspackage, usebytes.bufferforbinarydataandstrings.builderfortringoperations.1) audeBytes.bufferforworkingwhithbyteslices, binarydata, 첨부 DifferentDatatypes, andwritingtoio.2) useastrons

GO의 문자열 패키지는 다양한 문자열 조작 기능을 제공합니다. 1) 문자열을 사용하여 기판을 확인하십시오. 2) strings.split을 사용하여 문자열을 서브 스트링 슬라이스로 분할하십시오. 3) 문자열을 통해 문자열을 병합합니다. 4) 문자열의 시작과 끝에서 strings.trimspace 또는 strings.trim을 사용하여 공백 또는 지정된 문자를 제거하십시오. 5) 지정된 모든 하위 문구를 문자열로 교체하십시오. 6) strings.hasprefix 또는 strings.hassuffix를 사용하여 문자열의 접두사 또는 접미사를 확인하십시오.

Go Language Strings 패키지를 사용하면 코드 품질이 향상 될 수 있습니다. 1) strings.join ()을 사용하여 성능 오버 헤드를 피하기 위해 문자열 배열을 우아하게 연결하십시오. 2) strings.split () 및 strings.contains ()를 결합하여 텍스트를 처리하고 사례 민감도 문제에주의를 기울입니다. 3) 문자열의 남용을 피하고 ()을 replace ()하고 많은 수의 대체에 정규 표현식을 사용하는 것을 고려하십시오. 4) strings.builder를 사용하여 자주 스 플라이 싱 스트링의 성능을 향상시킵니다.

GO의 바이트 패키지는 바이트 슬라이싱을 처리하기위한 다양한 실용적인 기능을 제공합니다. 1. BYTES는 바이트 슬라이스에 특정 시퀀스가 포함되어 있는지 확인하는 데 사용됩니다. 2.Bytes.split은 바이트 슬라이스를 작은 피스로 분할하는 데 사용됩니다. 3.Bytes.join은 여러 바이트 슬라이스를 하나로 연결하는 데 사용됩니다. 4.bytes.trimspace는 바이트 슬라이스의 전면 및 후면 블랭크를 제거하는 데 사용됩니다. 5.Bytes.equal은 두 바이트 슬라이스가 동일인지 비교하는 데 사용됩니다. 6.bytes.index는 LargersLices에서 하위 슬라이스의 시작 지수를 찾는 데 사용됩니다.

Theencoding/BinaryPackageInsentialBecauseItProvideAstandAdizedWayStandwriteBinaryData, Cross-PlatformCompatibility 및 HandshandlingDifferentendianness.ItoffersFunctionsLikeRead, Write, andwriteUvarIntForPrecisControloverbinary


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Dreamweaver Mac版
시각적 웹 개발 도구