语法
type name = string // 类型别名
type name string // 类型声明
-
type name string
将name
定义为一个新的类型,该类型拥有和string
一样的特性,但是两者是不用的类型,不可用+
进行拼接等运算。 -
type name = string
将name
定义为string
的一个别名,使用name
和string
相同。二者可以当做同一种类型运算。别名只在源码中存在,编译完成后,不会有别名类型。
下面用代码说明
1.声明新的类型
package main
import "fmt"
type name string
var myName name = "robin"
var str string = " is handsome"
func main() {
fmt.Printf("%T, %v\n", myName, myName) //main.name, robin
fmt.Printf("%T, %v\n", str, str) //string, is handsome
fmt.Println(myName+str) //编译时会报错: invalid operation:myName + str (mismatched types name and string)
}
2.声明类型别名
package main
import "fmt"
type name = string
var myName name = "robin"
var str string = " is handsome"
func main() {
fmt.Printf("%T, %v\n", myName, myName) //string, robin
fmt.Printf("%T, %v\n", str, str) //string, is handsome
fmt.Println(myName+str) //编译正常,输出:robin is handsome
}
网友评论