类型声明:
type A = string
类型定义:
type A string
它们之间有什么区别?我无法从规格中了解
最佳答案
type A = string
为string
创建别名。每当您在代码中使用A
时,它就和string
一样工作。因此,例如,您不能在其上定义方法。type A string
定义了一个新类型,其表示形式与string
相同。您可以以零成本在A
和string
之间进行转换(因为它们相同),但是您可以在新类型上定义方法,并且反射将知道A
类型。
例如(在playground上)
package main
import (
"fmt"
)
type A = string
type B string
func main() {
var a A = "hello"
var b B = "hello"
fmt.Printf("a is %T\nb is %T\n", a, b)
}
输出:
a is string
b is main.B
关于go - Golang中的类型声明和类型定义有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61247864/