go语言结构体,函数与方法
一、定义结构体
go语言自定义数据类型使用 type ,定义结构体使用 type + stuct 关键字
package main import ( "fmt" ) type Cat struct { Name string Age int8 Color string } func main(){ var cat1 Cat cat1.Name = "花花" cat1.Age = 1 cat1.Color = "yellow" fmt.Println(cat1) }
执行结果:
二、结构体转json
使用 encoding/json 内置库
package main import ( "fmt" "encoding/json" ) type Cat struct { Name string Age int8 Color string } func main(){ var cat1 Cat cat1.Name = "花花" cat1.Age = 1 cat1.Color = "yellow" data, _ := json.Marshal(cat1) fmt.Println(string(data)) }
执行结果:
json字符串中的 key 首字母大写改为小写或其他带有下滑线的名字(给结构体的字段名,打标签)
package main import ( "fmt" "encoding/json" ) type Cat struct { Name string `json:"name"` Age int8 `json:"age"` Color string `json:"color"` } func main(){ var cat1 Cat cat1.Name = "花花" cat1.Age = 1 cat1.Color = "yellow" data, _ := json.Marshal(cat1) fmt.Println(string(data)) }
执行结果:
三、函数与方法
golang 中的方法是作用在指定自定义数据类型上的(通过type字段定义的自定义数据类型,都可以有自己的方法,而不仅仅是struct;类似于java中类里面的方法);而go中的函数区别在于,函数没有与特定的数据类型绑定在一起。
package main import ( "fmt" ) type Cat struct { Name string `json:"name"` Age int8 `json:"age"` Color string `json:"color"` } // 定义一个函数,与结构体无关联 func PrintCatName(){ fmt.Println("小咪") } // 定义了一个方法,作用在了Cat结构体上 func(cat Cat) PrintCatNameT(){ fmt.Println(cat.Name) } func main(){ var cat1 Cat cat1.Name = "花花" cat1.Age = 1 cat1.Color = "yellow" PrintCatName() cat1.PrintCatNameT() }
博客里大都是转载的内容,其目的主要用户知识的组织和管理。