Go 1.22가 이미 출시되었습니다. 새로운 기능과 개선 사항에 대해 알아보세요.

골랜드

Go는 C 구문에서 영감을 받은 정적 타이핑을 사용하는 컴파일된 동시 프로그래밍 언어입니다.

새로운 버전 Go 1.22는 버전 1.21 이후 XNUMX개월 후에 출시됩니다. 도구 세트, 런타임, 최적화 개선, 컴파일러 개선 및 라이브러리에 대한 여러 가지 주목할만한 변경 사항이 있습니다.

Go에 대해 모르는 사람들을 위해 이것이Google에서 개발 중인 프로그래밍 언어입니다. 컴파일 언어의 고성능과 코드 작성 용이성, 개발 속도 및 오류 방지와 같은 스크립팅 언어와 같은 장점을 결합한 하이브리드 솔루션으로 커뮤니티의 참여로

Go 1.22 주요 뉴스

Go 1.22에서 도입된 이 새 버전에서는 다음 사항을 강조합니다. "for" 루프의 두 가지 변경 사항으로 이전에는 for 루프로 선언된 변수가 한 번 생성되었습니다. 각 반복마다 업데이트되었습니다. Go 1.22에서는 루프를 반복할 때마다 새로운 변수가 생성됩니다. 실수로 인한 공유 오류를 방지하기 위해 for 루프에 범위 함수에 대한 실험적 지원(GOEXPERIMENT=rangefunc)을 추가했습니다. 함수를 반복자로 지정할 수 있고 for 루프와 관련된 오랜 문제를 해결했습니다. 이로 인해 코루틴 호출이 반복 간에 루프 변수를 공유하게 되었습니다. 또한 for 루프는 이제 정수를 통해 반복할 수 있습니다. 예를 들어:

package main import "fmt" func main() { for i := range 10 { fmt.Println(10 - i) } fmt.Println("go1.22 take off!") }

이 새 버전의 또 다른 주목할만한 변화는 디렉토리를 사용하는 능력 «공급 업체« 여기에는 작업공간 종속성이 포함되어 있습니다. 이제 명령은 `로 생성된 이 디렉토리를 사용할 수 있습니다.일하러 가세요` 그리고 빌드 명령에 사용됩니다. `가 설정되면-모드`에서 «공급 업체«, 이는 디렉터리가 존재할 때의 기본값입니다. «공급 업체» 작업 공간에 있습니다.

의 기능에 주목하는 것이 중요합니다. `가라`는 모드의 모듈 외부에서 더 이상 지원되지 않습니다. 고패스 상속됨 그러나 다음과 같은 다른 빌드 명령은 '빌드 이동' 및 '테스트 이동' 그들은 레거시 GOPATH 프로그램을 위해 계속해서 무기한으로 일할 것입니다. 게다가, 명령은 `모드 초기화로 이동` 더 이상 다른 구성 파일에서 모듈 요구 사항을 가져오려고 시도하지 않습니다. «“벤더링” (Gopkg.lock과 같은).

Go 1.22에는 다음이 도입되었습니다. 새 패키지 io/안전하지 않음 포인터 및 안전하지 않은 메모리를 사용하는 기능을 제공합니다.. 이 패키지는 포인터를 안전한 유형과 안전하지 않은 유형으로 변환하고 경계 검사 없이 메모리 복사 작업을 수행하는 방법을 제공합니다.

작업에는 p의 결과를 기반으로 컴파일러의 최적화가 계속 포함되었습니다.PGO 코드 프로파일링, 그리고 이제 컴파일러는 역가상화 도구를 사용하여 간접 호출을 대체합니다. 확장된 인라인 블록 실행으로 다양한 메소드를 구현합니다. PGO가 활성화되면 추가된 변경 사항으로 인해 대부분의 프로그램 성능이 2%~14% 향상되었습니다.

버전에서 Windows용, 라이브러리를 링크하거나 로드하는 프로그램 다음으로 구축 -빌드모드=c-아카이브 o -빌드모드=c-공유 이제 ETW(이벤트 로깅 Windows) API를 사용할 수 있습니다. 새로운 패키지를 통해 런타임/추적 y 추적, Go 이벤트 추적 수집 프로토콜을 ETW 공급자로 구현합니다.

눈에 띄는 다른 변경 사항 중 :

  • 명령 시험해 보세요 이제 자체 테스트 파일이 없는 적용 패키지에 대한 적용 범위 요약을 인쇄합니다.
  • 운영 체제/exec에는 컨텍스트 속성을 정의하는 기능이 추가되어 실행되는 명령에 대한 작업 디렉터리, 환경 변수, 입출력 파일 설명자 등의 값을 설정할 수 있습니다.
  • 런타임 시 메모리 관리가 최적화되어 대부분의 애플리케이션에서 성능이 1~3% 향상되고 메모리 소비가 1% 감소합니다.
  • 엘 파 케테 넷/http, 기능이 추가되었습니다 CloseIdleConnections 클라이언트가 최근에 사용한 모든 유휴 연결을 닫는 HTTP 클라이언트
  • 호출 삽입 메커니즘의 향상된 실험적 구현(GOEXPERIMENT=newinliner)이 컴파일러에 추가되었습니다. 이 컴파일러는 휴리스틱을 사용하여 중요한 작업과 중요하지 않은 작업을 구분합니다.
  • 패키지가 추가되었습니다 » 수학/랜드/v2 » 보다 일관된 API를 제공하고 더 빠른 알고리즘을 사용하여 의사 난수를 생성하는 표준 라이브러리로 변경되었습니다.
  • 엘 파 케테 net/http.ServeMux 템플릿에 메서드와 마스크를 지정하는 기능이 추가되었습니다.

마지막으로 만약 당신이 그것에 대해 더 알고 싶은 관심, 세부 사항을 확인할 수 있습니다 다음 링크에서.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.