Go 1.17 brings language and compiler enhancements

Update to Google’s open source programming language introduces enhancements for writing safe pointer operations and a more performant method of passing function arguments.

Go 1.17 moves to beta, with language and compiler enhancements
seraficus / Getty Images

Go 1.17, the latest release of the open source, Google-developed programming language, is now available as a production release, with changes intended to simplify coding for safety.

Go 1.17 was published on August 16. Release notes cite three small enhancements to the language, including two intended to simplify writing code that conforms to unsafe.Pointer’s safety rules. The three enhancements include:

  • An expression s of type []T may now be converted to array pointer type *[N]T. If a is the result of such a conversion, then corresponding indices that are in range refer to the same underlying elements: &a[i] == &s[i] for 0 <= i < N. The conversion panics if len(s) is less than N.
  • unsafe.Add: unsafe.Add(ptr, len) adds len to ptr and returns the updated pointer unsafe.Pointer(uintptr(ptr) + uintptr(len)).
  • unsafe.Slice: For expression ptr of type *T, unsafe.Slice(ptr, len) returns a slice of type []T whose underlying array starts at ptr and whose length and capacity are len.

Copyright © 2021 IDG Communications, Inc.

How to choose a low-code development platform