import ( "fmt" "reflect" ) func getStructName(v interface{}) string { // 使用reflect.TypeOf获取参数的类型 t := reflect.TypeOf(v) // 如果参数不是结构体类型,则返回一个空字符串或错误信息 if t.Kind() != reflect.Struct { return "" } // 返回结构体的名称 return t.Name() } 3....
首先定义struct,用一个map来管理struct 代码语言:javascript 复制 //这个是注册好的structvarregisterFunc=map[string]interface{}{"UserController":&UserController{},}type UserController struct{}func(u*UserController)GetName(param map[string]string)*ResData{ret:=ResData{}ret.Code=10000ret.Msg="succ"if...
fmt.Printf("《%s》name: [%s], gender: [%t], hobby: %v\n", dongman2, name2, gender2, hobby2) } 3.结构体定义 packagemainimport"fmt"// DongMan 定义动漫结构体,将动漫中各个属性放入一个结构体中管理typeDongManstruct{// 变量名称大写外界可以访问这个属性NamestringAgeintGenderboolHobby []strin...
struct 1 method, name:SetName type:func(*main.Student, string) 通过反射进行调用:&main.Student{Name:"xxx", Sex:0, Age:0, Score:0} 通过反射进行调用:&main.Student{Name:"stu01", Sex:0, Age:0, Score:0} package main import ( "fmt" "reflect" ) type Student struct { Name string `js...
struct定义 typeUserstruct{ NamestringAgeint32messstring}varuser Uservaruser1 *User = &User{}varuser2 *User =new(User) AI代码助手复制代码 struct的方法 在go语言中,我们可以为自定义类型定义类型相关的方法,比如: func(p *player)Name()string{returnp.name ...
//创建一个叫做NX_OS的类型(结构体)用来描述所有思科NX-OS路由器//该NX_OS类型(结构体)包含Hostname、Platform和ACI三个字段typeNX_OSstruct{HostnamestringPlatformstringACIbool}//为NX_OS结构体类型创建一个叫做getUptime()的方法用来获取NX-OS路由器的uptime//该方法返回值的类型为整数,方法具体的实现过程不...
func (p *Persons) getName() { fmt.Println("Name is ",p.Name) } type Student struct { // Student 属性中声明了 Persons,表示组合了Persons 的属性和方法(属性和方法都会被继承) Persons Name string schoole string } func main() { // 先初始化为空再赋值 s1 := &Student{} // 当访问Name的...
packagemainimport"fmt"typeHumanstruct{Namestring`json:"name"`//姓名Sexstring`json:"sex"`//性别Ageint`json:"age"`//年龄}typeStudentstruct{HumanGradestring`json:"grade"`//年级Schoolstring`json:"school"`//学校}func(h*Human)GetName()string{ifh!=nil&&len(h.Name)>0{returnh.Name}return""}...
packagemainimport"fmt"// Person结构体 - 相当于类typePersonstruct{Namestring// 字段Name 类型为stringAgeint8// 字段Age 类型为int8}// 实例方法func(p Person)GetName(){fmt.Printf("My name: %s\n",p.Name)}funcmain(){p:=Person{Name:"zhangsan",Age:18,}p.GetName()}// My name: zhangsan...
然后,我们通过字符串调用struct字段,首先使用reflect.ValueOf(p)获取p的反射值,然后使用FieldByName(fieldName)方法获取指定字段的反射值。最后,使用Interface()方法将反射值转换为接口类型,以便打印出字段的值。 输出结果为: 代码语言:txt 复制 Name: Alice 这个示例展示了如何通过字符串调用struct字段,并获取其值。在...