golang基础-struct tag(成员变量标签)
在golang中,命名都是推荐都是用驼峰方式,并且在首字母大小写有特殊的语法含义:包外无法引用。但是由经常需要和其它的系统进行数据交互,例如转成json格式,存储到mongodb啊等等。这个时候如果用属性名来作为键值可能不一定会符合项目要求。所以呢就多了小米点的内容,在golang中叫标签(Tag),在转换成其它数据格式的时候,会使用其中特定的字段作为键值。
参考:# Go的json解析:Marshal与Unmarshal
golang基础-通过type自定义类型和类型别名
type MyInt int通过Type关键字的定义,MyInt就是一种新的类型,它具有int的特性。
type TypeAlias = TypeTypeAlias只是Type的别名,本质上TypeAlias与Type是同一个类型。
自定义类型与类型别名的区别
//类型定义
type NewInt int
//类型别名
type MyInt = int
func main() {
var a NewInt
var b MyInt
fmt.Printf("type of a:%T\n", a) // 结果为:type of a:main.NewInt`
fmt.Printf("type of b:%T\n", b) // 结果为:type of b:int
}
结果显示a的类型是main.NewInt,表示main包下定义的NewInt类型。b的类型是int。MyInt类型只会在代码中存在,编译完成时并不会有MyInt类型。
参考文章:go语言开发基础25 - 之go语言里使用type关键字自定义类型与类型别名使用](www.cnblogs.com/hei-ma/arti…)
golang基础-类型断言
go语言中的类型断言:value, ok := x.(T)
x表示要断言的接口变量;
T表示要断言的目标类型;
value表示断言成功之后目标类型变量;
ok表示断言的结果,是一个bool型变量,true表示断言成功,false表示失败,如果失败value的值为nil。
golang基础-方法和函数的区别
在Go语言中,函数和方法不太一样,有明确的概念区分。其他语言中,比如Java,一般来说函数就是方法,方法就是函数,但是在Go语言中,函数是指不属于任何结构体、类型的方法,也就是说函数是没有接收者的;而方法是有接收者的,我们说的方法要么是属于一个结构体的,要么属于一个新定义的类型的。
参考文章:Go函数和方法的区别
golang基础-interface和interface{}
参考文章:www.cnblogs.com/maji233/p/1…
golang基础-go func
go func(){}()表示func这个函数会是以协程的方式运行。这样就可以提供程序的并发处理能力