mirror of
https://github.com/golang/go
synced 2024-11-23 00:20:12 -07:00
doc: add FAQ: why no conversion from []T1 to []T2?
Fixes #16934. Change-Id: I725704e4c4aae7023fd89edc42af7ba0d242fec8 Reviewed-on: https://go-review.googlesource.com/33327 Reviewed-by: Rob Pike <r@golang.org>
This commit is contained in:
parent
48858a2386
commit
fbf92436b9
@ -769,6 +769,29 @@ for i, v := range t {
|
||||
}
|
||||
</pre>
|
||||
|
||||
<h3 id="convert_slice_with_same_underlying_type">
|
||||
Can I convert []T1 to []T2 if T1 and T2 have the same underlying type?</h3>
|
||||
|
||||
This last line of this code sample does not compile.
|
||||
|
||||
<pre>
|
||||
type T1 int
|
||||
type T2 int
|
||||
var t1 T1
|
||||
var x = T2(t1) // OK
|
||||
var st1 []T1
|
||||
var sx = ([]T2)(st1) // NOT OK
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
In Go, types are closely tied to methods, in that every named type has
|
||||
a (possibly empty) method set.
|
||||
The general rule is that you can change the name of the type being
|
||||
converted (and thus possibly change its method set) but you can't
|
||||
change the name (and method set) of elements of a composite type.
|
||||
Go requires you to be explicit about type conversions.
|
||||
</p>
|
||||
|
||||
<h3 id="nil_error">
|
||||
Why is my nil error value not equal to nil?
|
||||
</h3>
|
||||
|
Loading…
Reference in New Issue
Block a user