2014-09-15 3 views
0

Предположим, что у меня есть псевдоним типа, как это:Преобразовать от типа псевдонима исходного типа

type myint int; 

Теперь у меня есть myint тип, который называется foo. Есть ли способ конвертировать foo из myint в int?

+4

Пожалуйста, ознакомьтесь с [спецификацией] (http://golang.org/ref/spec). Это должно прояснить пару вещей. – fuz

ответ

6

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 есть две встроенные псевдонимы. Приложения не могут определять свои собственные псевдонимы.

+0

+1 для семантики типа в Go! Одной из слабых сторон Scala является то, что 'type' делает псевдонимы не типами, интуитивно, возможно. Пойдите, это правильно ИМХО. –