Google은 프로그래밍 언어 Go의 새 버전 미리보기를 발표했습니다. 버전 1.18은 소위 '매개변수화된' 유형으로 '일반' 프로그래밍을 위한 기능을 추가합니다.
Go 버전 1 출시 이후 프로그래밍 언어의 가장 중요하고 가장 큰 변화입니다. 제네릭의 기본 개념은 이제 유형을 수정하여 함수 및 데이터 구조를 나타내는 기능을 허용한다는 것입니다. 이것은 인터페이스 유형을 함수로 가져오는 실제 데이터를 추상화하는 방법으로 정의함으로써 허용되는 '일반성'을 제외합니다.
Google은 Go 개발자가 이 기능이 의심할 여지 없이 새로운 버그로 이어진다는 점을 인식해야 함을 나타냅니다. 따라서 그들은 이러한 '제네릭'에 주의해서 접근해야 합니다.
Go 1.18 베타의 기타 기능
위의 기능 외에도 새 미리 보기에는 퍼징 기반 테스트 작성 지원 기능이 내장되어 있습니다. 이러한 테스트는 프로그램이 충돌하거나 잘못된 답변을 반환하도록 하는 입력을 자동으로 찾을 수 있습니다. Go 1.18 베타는 또한 새로운 'Go 작업 공간 모드'를 제공합니다. 이를 통해 프로그래머는 여러 Go 모듈을 동시에 사용할 수 있습니다. Google에 따르면 이는 대규모 프로젝트에 특히 유용합니다.
또한 버전 1.18 베타는 확장된 go version -m 명령으로 기능을 추가합니다. 이 명령은 이제 세부 정보를 컴파일러 플래그로 저장합니다. 이제 프로그램은 debug.ReadBuildInfo 명령을 사용하여 자체 빌드 세부 정보를 쿼리할 수 있습니다.
또한 Go 1.17부터 사용할 수 있는 더 많은 레지스터 기반 호출 규칙이 미리 보기에 추가되었습니다. 이전 버전에서 이 기능은 x86 및 x64 시스템에서 Go 코드의 속도를 높이는 데만 적합했지만 이제는 ARM64 및 PPC64 기반 시스템에도 적합합니다. 최대 20% 더 빠른 속도를 제공해야 합니다.