当前位置: 首页 > news >正文

网站建站公司服务好吗企业网站策划过程

网站建站公司服务好吗,企业网站策划过程,怎么找上海网站建设,wordpress多站点命名在 go 语言中#xff0c;实现反射能力的是 reflect包#xff0c;能够让程序操作不同类型的对象。其中#xff0c;在反射包中有两个非常重要的 类型和 函数#xff0c;两个函数分别是#xff1a; reflect.TypeOfreflect.ValueOf 两个类型是 reflect.Type 和 reflect.Value…在 go 语言中实现反射能力的是 reflect包能够让程序操作不同类型的对象。其中在反射包中有两个非常重要的 类型和 函数两个函数分别是 reflect.TypeOfreflect.ValueOf 两个类型是 reflect.Type 和 reflect.Value它们与函数是一一对应的关系 使用场景map和struct的相互转化json序列化ORM框架rpc服务的注册和调用 1 Type 和 TypeOf reflect.Type 类型是一个接口类型内部指定了若干方法通过这些方法我们可以获取到反射类型的各种信息例如字段、方法等 使用 reflect.TypeOf() 函数可以获取将任意值的类型对象 (reflect.Type)程序通过类型对象可以访问任意值的类型信息 func main() {type MyInt inttype cat struct {Name stringType int json:type id:100}inst : cat{Name: mimi, Type: 1}typeOfCat : reflect.TypeOf(inst)// 显示反射类型对象的名称和种类fmt.Println(typeOfCat.Name(), typeOfCat.Kind())for i : 0; i typeOfCat.NumField(); i {// 获取每个成员的结构体字段类型fieldType : typeOfCat.Field(i)// 输出成员名和tagfmt.Printf(name: %v tag: %v\n, fieldType.Name, fieldType.Tag)}// 通过字段名, 找到字段类型信息if catType, ok : typeOfCat.FieldByName(Type); ok {// 从tag中取出需要的tagfmt.Println(catType.Tag.Get(json), catType.Tag.Get(id))}var Zero MyInt// 获取Zero常量的反射类型对象typeOfA : reflect.TypeOf(Zero)// 显示反射类型对象的名称和种类fmt.Println(typeOfA.Name(), typeOfA.Kind()) }2 Value 和 ValueOf reflect.Value 类型是一个结构体封装了反射对象的值内部若干方法可以通过这些方法来获取和修改对象的值使用 reflect.ValueOf 函数可以返回 Value 类型value 类型还可以生成原始类型对象 反射值对象reflect.Value提供对结构体访问的方法通过这些方法可以完成对结构体任意值的访问方法列表参考 Type 常用方法 修改成员的值 使用 reflect.Value 对包装的值进行修改时需要遵循一些规则。如果该对象不可寻址或者成员是私有的则无法修改对象值 func main() {type dog struct {LegCount intage int}// 获取dog实例地址的反射值对象valueOfDog : reflect.ValueOf(dog{})// 取出dog实例地址的元素valueOfDog valueOfDog.Elem()// 获取legCount字段的值vLegCount : valueOfDog.FieldByName(LegCount)vAge : valueOfDog.FieldByName(age)// 尝试设置legCount的值vLegCount.SetInt(4)// 这里会报错vAge.SetInt(4)fmt.Println(vLegCount.Int()) }3 通过反射调用函数 使用反射调用函数时需要将参数使用反射值对象的切片 []reflect.Value 构造后传入 Call() 方法中调用完成时函数的返回值通过 []reflect.Value 返回 package main import (fmtreflect ) // 普通函数 func add(a, b int) int {return a b } func main() {// 将函数包装为反射值对象funcValue : reflect.ValueOf(add)// 构造函数参数, 传入两个整型值paramList : []reflect.Value{reflect.ValueOf(10), reflect.ValueOf(20)}// 反射调用函数retList : funcValue.Call(paramList)// 获取第一个返回值, 取整数值fmt.Println(retList[0].Int()) }4 反射性能 通过反射生成对象和字段赋值都会影响性能但是通过反射的确确确实实能简化代码为业务逻辑提供统一的代码 比如标准库中json的编解码、rpc服务的注册和调用 一些ORM框架比如gorm等都是通过反射处理数据的这是为了能处理通用的类型。
http://www.hkea.cn/news/14435070/

相关文章:

  • 桐乡建设局网站google网页版
  • 太原的网站搭建公司伊春网站制作
  • 在建设银行网站申请完信用卡吗信息技术网站建设市场分析
  • 高淳做网站价格雏光 网络推广 网站建设
  • 罗玉凤做网站深圳专业网站建设定制
  • 扁平式网站模板phpcms模板行业网站
  • 网站作用微网站 微信网站
  • 做公司网站详细步骤永州网站开发
  • 医药行业网站建设十大网站免费
  • 建设淘宝网站的目的wordpress插件目录504
  • 交通信用网站建设关于征求网站建设的通知
  • 宝安建网站公司域名购买之后怎么做网站
  • win8建立网站网上哪里接app推广单
  • 控制网站的大量访问软件开发的三种基本方法
  • 二手市场网站建设的目的怎么制作网站弹出广告
  • 卖二手手表的网站好网站建设公司开发
  • 无锡网站建设外贸net网站开发视频
  • 长沙城市建设档案馆网站朝阳公司做网站
  • 嘉禾手机网站建设策划设计网站
  • 亿达城市建设官方网站北京十大室内设计工作室
  • 关于做好学院网站建设的要求做网络竞拍的网站需要什么
  • 做兼职一般去哪个网站好pyhton可以做网站吗
  • 做网站程序的都不关注seo安全生产门户网站建设
  • 自己做的网站怎么用qq登入国家企业信用网官网
  • 做ios试玩推广网站软件app开发公司电话
  • 商城网站建设的步骤济南的网站建设公司哪家好
  • 图网新网站排名优化
  • 车床加工东莞网站建设公关公司服务的特点
  • 网站开发要求有哪些界面设计规范
  • 关于书店电商网站建设的心得十堰做网站最好的公司