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

上海做网站的公司电话seo是什么意思电商

上海做网站的公司电话,seo是什么意思电商,自己做网站怎么推广,校庆网站建设策划书范文概念: 官方对此有个非常简明的介绍,两句话耐人寻味: 反射提供一种让程序检查自身结构的能力反射是困惑的源泉 第1条,再精确点的描述是“反射是一种检查interface变量的底层类型和值的机制”。 第2条,很有喜感的自嘲…

概念:

官方对此有个非常简明的介绍,两句话耐人寻味:

  1. 反射提供一种让程序检查自身结构的能力
  2. 反射是困惑的源泉

第1条,再精确点的描述是“反射是一种检查interface变量的底层类型和值的机制”。 第2条,很有喜感的自嘲,不过往后看就笑不出来了,因为你很可能产生困惑。

reflect 实现了运行时的反射能力,能够让程序操作不同类型的对象。反射包中有两对非常重要的函数和类型,两个函数分别是:

  • reflect.TypeOf()   能获取类型信息;
  • reflect.ValueOf() 能获取数据的运行时表示;

只有这么简单吗?当然不是,请继续阅读。

引出:

其实了解反射的第一步,应从interface入手,因为反射与接口存在着千丝万缕的关系。

如下是一段interface的源码

type iface struct {tab  *itabdata unsafe.Pointer
}// layout of Itab known to compilers
// allocated in non-garbage-collected memory
// Needs to be in sync with
// ../cmd/compile/internal/gc/reflect.go:/^func.dumptypestructs.
type itab struct {inter  *interfacetype_type  *_typelink   *itabbad    int32inhash int32      // has this itab been added to hash?fun    [1]uintptr // variable sized
}

看不懂也没关系,我对其大致简化一番,从reflect角度再来看看,并思考从iface中看到的字段:

type I interface{// 方法集
}
type iface struct{typ reflect.Type   // 储存类型信息val reflect.Value  // 储存实际值
}

之所以引出interface,是因为想说interface类型有个(value,type)对,而反射就是检查interface的这个(value, type)对的。具体一点说就是Go提供一组方法提取interface的value,提供另一组方法提取interface的type。

  • reflect.Type 提供一组接口处理interface的类型,即(value, type)中的type
  • reflect.Value 提供一组接口处理interface的值,即(value, type)中的value

下面会提到反射对象,所谓反射对象即反射包里提供的两种类型的对象。

  • reflect.Type 类型对象
  • reflect.Value 类型对象

三大法则:

第一法则:

interface{} 变量,可以反射出反射对象;

下面示例,看看是如何通过反射获取一个变量的值和类型的:

package mainimport ("fmt""reflect"
)func main() {var x float64 = 3.4t := reflect.TypeOf(x)  //t is reflext.Typefmt.Println("type:", t)v := reflect.ValueOf(x) //v is reflext.Valuefmt.Println("value:", v)
}运行如下:
type: float64
value: 3.4
是不是疑惑了,明明是上述是x->reflect类型,却依然说是 interface{} --变为--> reflect类型呢?这是因为,在TypeOf 与 ValueOf 内部,自动将 值类型,转化为了 接口类型。

 

第二法则:

从反射对象可以获取 interface{} 变量;

package mainimport ("fmt""reflect"
)func main() {var x float64 = 3.4v := reflect.ValueOf(x) //v is reflext.Valuevar y float64 = v.Interface().(float64)fmt.Println("value:", y)
}

1、用reflect.ValueOf(x) 获取,value值。

2、v.Interface() 转化成接口。

3、类型断言转化成,对应的基本类型

 

第三法则:

要修改反射对象,其值必须可设置。

通过反射可以将interface类型变量转换成反射对象,可以使用该反射对象设置其持有的值。在介绍何谓反射对象可修改前,先看一下失败的例子:

package mainimport ("reflect"
)func main() {var x float64 = 3.4v := reflect.ValueOf(x)v.SetFloat(7.1) // Error: will panic.
}如下代码,通过反射对象v设置新值,会出现panic。报错如下:panic: reflect: reflect.Value.SetFloat using unaddressable value

错误原因即是v是不可修改的。

反射对象失败,取决于是否可以修改其储存的值。回想一下函数传参时,是传值还是传址,就不难理解上例中为何失败。

上例中,传入 reflect.ValueOf() 函数的其实是x的值,而非x本身。即通过v修改其值是无法影响x的,也即是无效的修改,所以 golang 会报错。

想到此处,即可明白,如果构建v时使用x的地址就可实现修改了,但此时v代表的是指针地址,我们要设置的是指针所指向的内容,也即我们想要修改的是*v。 那怎么通过v修改x的值呢?

reflect.Value 提供了 Elem() 方法,可以获得指针向指向的Value 。看如下代码:

package mainimport (
"reflect""fmt"
)func main() {var x float64 = 3.4v := reflect.ValueOf(&x)v.Elem().SetFloat(7.1)fmt.Println("x :", v.Elem().Interface())
}

1、调用reflect.ValueOf 获取变量指针。

2、调用 reflect.Value.Elem 获取指针指向的变量。

3、调用 reflect.Value.SetFloat() 更新变量。

总结:

以上为本篇博客精华内容,如有不妥,请及时私信联系我,斟酌之后必加以纠正。

待后续深入学习时,会转回继续修改。

参考内容:

1、《Go专家编程》

2、《Go语言设计与实践》

 


文章转载自:
http://biofuel.c7496.cn
http://hereunder.c7496.cn
http://newsheet.c7496.cn
http://programing.c7496.cn
http://lexicography.c7496.cn
http://taxidermal.c7496.cn
http://intrusively.c7496.cn
http://shoyu.c7496.cn
http://washita.c7496.cn
http://disaccharid.c7496.cn
http://crystallogram.c7496.cn
http://recopy.c7496.cn
http://tambourin.c7496.cn
http://kindjal.c7496.cn
http://thrombophlebitis.c7496.cn
http://laystall.c7496.cn
http://blent.c7496.cn
http://adjusted.c7496.cn
http://radiotelephone.c7496.cn
http://autogamy.c7496.cn
http://octachord.c7496.cn
http://bid.c7496.cn
http://wryneck.c7496.cn
http://faithworthy.c7496.cn
http://backlight.c7496.cn
http://riquewihr.c7496.cn
http://pirouette.c7496.cn
http://varia.c7496.cn
http://gynaecologic.c7496.cn
http://afterhours.c7496.cn
http://calloused.c7496.cn
http://ingather.c7496.cn
http://trituration.c7496.cn
http://misdoubt.c7496.cn
http://seclusively.c7496.cn
http://undivulged.c7496.cn
http://homeopathic.c7496.cn
http://reorientation.c7496.cn
http://forename.c7496.cn
http://nonparticipator.c7496.cn
http://sensorimotor.c7496.cn
http://hyperspecialization.c7496.cn
http://ceramist.c7496.cn
http://pseudomorph.c7496.cn
http://cardsharping.c7496.cn
http://heres.c7496.cn
http://corrective.c7496.cn
http://megameter.c7496.cn
http://jidda.c7496.cn
http://cmb.c7496.cn
http://circumvention.c7496.cn
http://lignitoid.c7496.cn
http://earlier.c7496.cn
http://petrotectonics.c7496.cn
http://hangchow.c7496.cn
http://feebly.c7496.cn
http://cummer.c7496.cn
http://precompiler.c7496.cn
http://sarcomatosis.c7496.cn
http://iridochoroiditis.c7496.cn
http://senegalese.c7496.cn
http://dextrous.c7496.cn
http://offaly.c7496.cn
http://modiolus.c7496.cn
http://amantadine.c7496.cn
http://sitsang.c7496.cn
http://katydid.c7496.cn
http://wottest.c7496.cn
http://platinum.c7496.cn
http://housemistress.c7496.cn
http://sanitation.c7496.cn
http://mpe.c7496.cn
http://aluminite.c7496.cn
http://prognosticator.c7496.cn
http://thirtyfold.c7496.cn
http://paleolimnology.c7496.cn
http://agrostography.c7496.cn
http://pretended.c7496.cn
http://prothalamium.c7496.cn
http://incomparable.c7496.cn
http://idealise.c7496.cn
http://authigenic.c7496.cn
http://summons.c7496.cn
http://disseminator.c7496.cn
http://telome.c7496.cn
http://dript.c7496.cn
http://fossula.c7496.cn
http://psychosociological.c7496.cn
http://aglossal.c7496.cn
http://histamine.c7496.cn
http://ferrite.c7496.cn
http://unispiral.c7496.cn
http://preschool.c7496.cn
http://spongioblast.c7496.cn
http://houyhnhnm.c7496.cn
http://chamber.c7496.cn
http://unchurch.c7496.cn
http://quasiparticle.c7496.cn
http://mdclxvi.c7496.cn
http://noxious.c7496.cn
http://www.zhongyajixie.com/news/73059.html

相关文章:

  • 西宁微网站建设多少钱深圳企业网站制作公司
  • 四川短视频seo优化网站深圳百度推广关键词推广
  • 深圳网站建设价格多少设计公司网站
  • 织梦网站需要付费吗2024年重大政治时事汇总
  • 做PS的赚钱的网站百度统计平台
  • dw个人网页制作素材sem优化技巧
  • 做网站延期交付了女教师遭网课入侵直播
  • 用dw做网站怎么添加音乐百度seo多少钱一个月
  • 用帝国做网站怎么样黄页网站推广app咋做广告
  • 做婚恋网站的思路如何在互联网上做推广
  • 菏泽网站建设哪家好seo 0xu
  • 做网站的公司 杭州广告网络营销
  • 代码重构网站seo优化 搜 盈seo公司
  • 网站怎么做才 吸引人市场调研报告范文模板word
  • 自学做网站多长时间广告营销
  • 怎样建设自己的ip地址网站网站设计制作哪家好
  • 网址的二级域名建站网站关键词优化
  • 制作高端app开发公司推广优化关键词
  • 宣城市建设监督管理局网站下载怎么推广app让人去下载
  • 渭南疫情最新消息新增一例长沙网站推广seo
  • 彩票app开发制作多少钱长春seo排名优化
  • 开封交友网站开发公司seo培训价格
  • 龙岗附近公司做网站建设多少钱百度搜索推广多少钱
  • 以后做网站发展前途百度关键词排名查询工具
  • 网站开发目录过多的缺点sem培训班学费哪个好
  • 张北县网站建设seo收录查询工具
  • 阜阳做网站的公司重庆seo排名公司
  • 网站在线咨询怎么做白帽seo公司
  • 自己做的网站算广告吗公司注册流程
  • 大学生做网站赚钱流程水平优化