go语言的关键字type跟C/C++中的typedef比较像,相当于给类型取一个别名。在C/C++经常这么写:
typedef unsigned int Uint32;
typedef void (*OutputFunc)(const char* msg, int len);
typedef struct Person
{
int no;
char name[12];
} P;
而go语言type可以这么用:
package main
import "fmt"
type long = int64 //Go 1.9 版本之前用法
type double float64 // Go 1.9 版本之后用法
type Person struct {
age int
name string
}
func main() {
var lv long
var d double
p := Person{age: 18, name: "明明"}
fmt.Printf("lv type:%T d type:%T person:%s,%d \n", lv, d, p.name, p.age) // 输出lv d的数据类型
//输出 lv type:int64 d type:main.double
}
package main
import "fmt"
func Add(a, b int) int {
return a + b
}
func Sub(a, b int) int {
r