Предположим, что у меня есть псевдоним типа, как это:Преобразовать от типа псевдонима исходного типа
type myint int;
Теперь у меня есть myint
тип, который называется foo
. Есть ли способ конвертировать foo из myint
в int
?
Предположим, что у меня есть псевдоним типа, как это:Преобразовать от типа псевдонима исходного типа
type myint int;
Теперь у меня есть myint
тип, который называется foo
. Есть ли способ конвертировать foo из myint
в int
?
conversion Используйте для преобразования myint
в int
:
package main
import "fmt"
type myint int
func main() {
foo := myint(1) // foo has type myint
i := int(foo) // use type conversion to convert myint to int
fmt.Println(i)
}
Тип myint
это не псевдоним для междунар. Это другой тип. Например, выражение myint(0) + int(1)
не компилируется, потому что операнды являются разными типами. В Go, rune и byte есть две встроенные псевдонимы. Приложения не могут определять свои собственные псевдонимы.
+1 для семантики типа в Go! Одной из слабых сторон Scala является то, что 'type' делает псевдонимы не типами, интуитивно, возможно. Пойдите, это правильно ИМХО. –
Пожалуйста, ознакомьтесь с [спецификацией] (http://golang.org/ref/spec). Это должно прояснить пару вещей. – fuz