Download Go 1.9
Go, also referred to as golang, is a programming language developed by Google and the open source community since 2007. Among other things, the language is cloudflare, google, Netflix and Uber used. Go code can be compiled for Android, Linux, OS X, FreeBSD, and Windows on i386, amd64, and ARM processor architectures. The syntax of Go is similar to that of C and similar programming languages, although there are also some notable differences. Go also offers the option of distributed programming, in which several processes are executed simultaneously. The team released Go 1.9 a few days ago with the following announcement:
Go 1.9 has been released
Today the Go team is happy to announce the release of Go 1.9. You can get it from the download page. There are many changes to the language, standard library, runtime, and tooling. This post covers the most significant visible ones. Most of the engineering effort put into this release went to improvements of the runtime and tooling, which makes for a less exciting announcement, but nevertheless a great release.
The most important change to the language is the introduction of type aliases: a feature created to support gradual code repair. A type alias declaration has the form:
type T1 = T2
This declaration introduces an alias name T1 for the type T2, in the same way that byte has always been an alias for uint8. The type alias design document and an article on refactoring cover this addition in more detail.
The new math/bits package provides bit counting and manipulation functions for unsigned integers, implemented by special CPU instructions when possible. For example, on x86-64 systems, bits.TrailingZeros(x) uses the BSF instruction.
The sync package has added a new Map type, safe for concurrent access. You can read more about it from its documentation and learn more about why it was created from this GopherCon 2017 lightning talk (slides). It is not a general replacement for Go’s map type; please see the documentation to learn when it should be used.
The testing package also has an addition. The new Helper method, added to both testing.T and testing.B, marks the calling function as a test helper function. When the testing package prints file and line information, it shows the location of the call to a helper function instead of a line in the helper function itself.
For example, consider this test:
package p
import “test”
func failure(t *testing.T) {
t.Helper() // This call silences this function in error reports.
t.Fatal(“failure”)
}
func Test(t *testing.T) {
failure
Version number | 1.9 |
Release status | Final |
Operating systems | Windows 7, Android, Linux, BSD, macOS, Solaris, UNIX, Windows Server 2008, Windows Server 2012, Windows 8, Windows 10 |
Website | The Go Blog |
Download | |
License type | Conditions (GNU/BSD/etc.) |