1
0
mirror of https://github.com/golang/go synced 2024-11-26 20:21:25 -07:00

doc: add type aliases to go1.9.html

Updates #20587

Change-Id: I5df603505ae1d4b65687bec1e973a4ab318b34f1
Reviewed-on: https://go-review.googlesource.com/45014
Reviewed-by: Robert Griesemer <gri@golang.org>
Reviewed-by: Rob Pike <r@golang.org>
This commit is contained in:
Brad Fitzpatrick 2017-06-06 22:03:45 +00:00
parent 4e7067cde4
commit 90b39f33c4

View File

@ -23,12 +23,18 @@ ul li { margin: 0.5em 0; }
</strong></p> </strong></p>
<p> <p>
The latest Go release, version 1.9, arrives six months after <a href="go1.8">Go 1.8</a> The latest Go release, version 1.9, arrives six months
and is the tenth release in the <a href="https://golang.org/doc/devel/release.html">Go 1.x series</a>. after <a href="go1.8">Go 1.8</a> and is the tenth release in
Most of its changes are in the implementation of the toolchain, runtime, and libraries. the <a href="https://golang.org/doc/devel/release.html">Go 1.x
There are no changes to the language specification. series</a>.
As always, the release maintains the Go 1 <a href="/doc/go1compat.html">promise of compatibility</a>. There is one <a href="#language">change to the language</a>, adding
We expect almost all Go programs to continue to compile and run as before. support for type aliases.
Most of the changes are in the implementation of the toolchain,
runtime, and libraries.
As always, the release maintains the Go 1
<a href="/doc/go1compat.html">promise of compatibility</a>.
We expect almost all Go programs to continue to compile and run as
before.
</p> </p>
<p> <p>
@ -39,6 +45,29 @@ ul li { margin: 0.5em 0; }
and includes a new <a href="#math-bits">bit manipulation package</a>. and includes a new <a href="#math-bits">bit manipulation package</a>.
</p> </p>
<h2 id="language">Changes to the language</h2>
<p>
There is one change to the language.
Go now supports type aliases to support gradual code repair while
moving a type between packages.
The <a href="https://golang.org/design/18130-type-alias">type alias
design document</a>
and <a href="https://talks.golang.org/2016/refactor.article">an
article on refactoring</a> cover the problem in detail.
In short, a type alias declaration has the form:
</p>
<pre>
type T1 = T2
</pre>
<p>
This declaration introduces an alias name <code>T1</code>—an
alternate spelling—for the type denoted by <code>T2</code>; that is,
both <code>T1</code> and <code>T2</code> denote the same type.
</p>
<h2 id="ports">Ports</h2> <h2 id="ports">Ports</h2>
<p> <p>
@ -147,7 +176,7 @@ ul li { margin: 0.5em 0; }
The The
new <a href="/pkg/testing/#T.Helper"><code>(*T).Helper</code></a> new <a href="/pkg/testing/#T.Helper"><code>(*T).Helper</code></a>
an <a href="/pkg/testing/#B.Helper"><code>(*B).Helper</code></a> an <a href="/pkg/testing/#B.Helper"><code>(*B).Helper</code></a>
methods marks the calling function as a test helper function. When methods mark the calling function as a test helper function. When
printing file and line information, that function will be skipped. printing file and line information, that function will be skipped.
This permits writing test helper functions while still having useful This permits writing test helper functions while still having useful
line numbers for users. line numbers for users.