移动局域网ip做网站徐州招聘网站哪个好

张小明 2026/1/13 8:37:29
移动局域网ip做网站,徐州招聘网站哪个好,兰州网络营销推广价格,哪家网络公司做网站好文章目录golang 中类的封装类的继承类的多态interface{} 万能数据类型反射1. 变量内置 pair 结构2. 反射 reflect 机制3. 结构体标签4. 结构体标签在 Json 中的应用golang 中类的封装 package mainimport fmt// 类名首字母大写#xff0c;表示其他包也可以访问 t…文章目录golang 中类的封装类的继承类的多态interface{} 万能数据类型反射1. 变量内置 pair 结构2. 反射 reflect 机制3. 结构体标签4. 结构体标签在 Json 中的应用golang 中类的封装packagemainimportfmt// 类名首字母大写表示其他包也可以访问typePersonstruct{Namestring// 属性名首字母大写表示该属性对外能够访问否则只能类的内部访问AgeintSexstring}func(this*Person)Show(){fmt.Println(姓名,this.Name,年龄,this.Age,性别,this.Sex)}func(this*Person)GetName()string{returnthis.Name}func(this*Person)SetName(name string){// this是调用方法对象指针this.Namename}func(thisPerson)SetName2(name string){// this是调用方法对象的一个副本this.Namename}funcmain(){p:Person{Name:张三,Age:18,Sex:男,}p.Show()fmt.Println()p.SetName2(honghong)p.Show()fmt.Println()p.SetName(honghong)p.Show()}注意go 语言中类名、属性、方法的首字母是否大写都与其是否能被外部其它包访问有关否则只能在本包内访问。类的继承packagemainimportfmttypeHumanstruct{namestringsexstring}func(this*Human)Eat(){fmt.Println(Human Eating...)}func(this*Human)Walk(){fmt.Println(Human Walking...)}// // 继承定义 SuperMan 继承自 HumantypeSuperManstruct{// 表示继承自HumanHuman levelint}// 重写 eat 方法func(this*SuperMan)Eat(){fmt.Println(SuperMan Eating...)}// 增加 Fly 方法func(this*SuperMan)Fly(){fmt.Println(SuperMan Flying...)}funcmain(){h:Human{zhangsan,male}h.Eat()h.Walk()fmt.Println()// 定义子类对象//s : SuperMan {Human{lisi, female}, 2}vars SuperMan s.namelisis.sexfemales.level2s.Eat()s.Walk()s.Fly()}类的多态packagemainimportfmt// interfacetypeAnimalinterface{Sleep()GetColor()stringGetType()string}// 具体的类typeCatstruct{Colorstring}func(this*Cat)Sleep(){fmt.Println(Cat is sleeping)}func(this*Cat)GetColor()string{returnthis.Color}func(this*Cat)GetType()string{returnCat}// 具体的类typeDogstruct{Colorstring}func(this*Dog)Sleep(){fmt.Println(Dog is sleeping)}func(this*Dog)GetColor()string{returnthis.Color}func(this*Dog)GetType()string{returnDog}funcshowAnimal(animal Animal){fmt.Println(animal.GetType(),animal.GetColor())}funcmain(){// 多态体现同一个接口类型的变量可以指向不同的实现类对象varanimal Animal animalCat{white}animal.Sleep()animalDog{black}animal.Sleep()fmt.Println()// 多态体现cat:Cat{white}dog:Dog{black}showAnimal(cat)showAnimal(dog)}多态的要素有一个接口子类要实现接口的所有接口方法少一个都不行父类的引用指向子类的具体数据类型interface{} 万能数据类型interface{} 空接口int、string、float64… 均实现了 interface{}可以用interface{} 类型代表任何数据类型interface 用于类型断言packagemainimportfmt// interface{} 作为万能数据类型funcmyFun(argsinterface{}){fmt.Println(myFun!)fmt.Println(args)// 提供 interface{} 类型断言value,ok:args.(string)if!ok{fmt.Println(args is not string)}else{fmt.Println(args is string)fmt.Println(value ,value)}}funcmain(){myFun(11)fmt.Println()myFun(hello)fmt.Println()myFun(true)fmt.Println()myFun(1.234)}反射1. 变量内置 pair 结构反射是通过 pair 结构来得到 type。2. 反射 reflect 机制通过 reflect 包动态获取 type 和 valuee.g.1packagemainimport(fmtreflect)funcPrintNum(arginterface{}){fmt.Println(type is: ,reflect.TypeOf(arg))fmt.Println(value is: ,reflect.ValueOf(arg))}funcmain(){varnumfloat641.235PrintNum(num)}e.g.2packagemainimport(fmtreflect)typeUserstruct{IdintNamestringAgeint}func(this User)Call(){fmt.Println(user call...)}funcmain(){u:User{1,honghong,18}PrintFieldsAndValues(u)}funcPrintFieldsAndValues(inputinterface{}){// 获取 input 的typeinputtype:reflect.TypeOf(input)fmt.Println(inputtype is: ,inputtype)// 获取 input 的valueinputvalue:reflect.ValueOf(input)fmt.Println(inputvalue is: ,inputvalue)fmt.Println()// 通过 type 获取里面的字段// 1. interface获取 type通过 type 获取 NumFields, 遍历字段// 2. 得到每个 field数据类型// 3. 通过 field 有一个 Interface() 方法得到 valuefori:0;iinputtype.NumField();i{field:inputtype.Field(i)value:inputvalue.Field(i).Interface()fmt.Printf(%v: %s %v\n,field.Type,field.Name,value)}fmt.Println()// 通过 type 获取方法fori:0;iinputtype.NumMethod();i{method:inputtype.Method(i)fmt.Printf(%s: %v\n,method.Name,method.Type)}}3. 结构体标签packagemainimport(fmtreflect)typeresumestruct{Namestringinfo:name doc:我的名字sexstringinfo:sex doc:性别}funcPrintTag(datainterface{}){t:reflect.TypeOf(data).Elem()fori:0;it.NumField();i{tagInfo:t.Field(i).Tag.Get(info)tagDoc:t.Field(i).Tag.Get(doc)fmt.Println(tag info:,tagInfo, tag doc:,tagDoc)}}funcmain(){varr resumePrintTag(r)}4. 结构体标签在 Json 中的应用packagemainimport(encoding/jsonfmt)typeMoviestruct{Titlestringjson:titleYearintjson:yearPricefloat64json:rmbActors[]stringjson:actors}funcmain(){movie:Movie{唐顿庄园,2000,9.5,[]string{tom,jerry,lucy}}// 编码 movie 结构体———— jsonjsonStr,err:json.Marshal(movie)iferr!nil{fmt.Println(json.Marshal err:,err)return}fmt.Printf(%s\n,jsonStr)// 解码 json ———— movie 结构体myMovie:Movie{}errjson.Unmarshal(jsonStr,myMovie)iferr!nil{fmt.Println(json.Unmarshal err:,err)return}fmt.Printf(%v\n,myMovie)}
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

专业免费建站wordpress grace8下载

第一章:为什么头部保险公司都在用Open-AutoGLM做到期提醒?真相令人震惊在保险行业数字化转型的浪潮中,客户保单到期提醒的自动化与精准化已成为提升续保率的关键环节。越来越多头部保险公司悄然采用名为 Open-AutoGLM 的开源智能提醒系统&…

张小明 2026/1/1 0:19:28 网站建设

wordpress微信网站模板常州建设局官方网站

第一章:Open-AutoGLM与JMeter对比分析的核心维度在自动化测试与智能模型驱动的性能评估领域,Open-AutoGLM 与 JMeter 代表了两种不同的技术范式。前者基于大语言模型实现智能化测试脚本生成与场景推理,后者则是传统的负载测试工具&#xff0c…

张小明 2025/12/24 6:44:03 网站建设

如何做网站代理新网虚拟主机安装wordpress

第一章:Open-AutoGLM 邀请码的行业背景与准入逻辑在人工智能技术快速演进的背景下,大语言模型(LLM)的研发与应用正从封闭走向开放协作。Open-AutoGLM 作为面向开发者与研究者的开源智能引擎平台,其邀请码机制并非简单的…

张小明 2025/12/24 6:43:01 网站建设

网站流量分析指标天津做网站的大公司

第一章:Dify 1.7.0音频转文字功能概览Dify 1.7.0 版本引入了全新的音频转文字功能,显著提升了语音内容处理的效率与准确性。该功能基于先进的语音识别模型,支持多种常见音频格式(如 MP3、WAV、M4A),可广泛应…

张小明 2025/12/24 6:41:59 网站建设

宝山网站建设 网站外包网站系统找不到指定的文件

Pytest 之所以能成为 Python 社区最受欢迎的测试框架之一,不仅在于其简洁优雅的语法和强大的断言能力,更得益于其极具扩展性的插件生态系统。本文将带你探索 Pytest 最核心的插件,并以 Pytest-xdist 为例,深入剖析其底层实现原理&…

张小明 2025/12/30 16:49:05 网站建设

做网站汉口js 插件html转换wordpress

零样本声音克隆技术突破!EmotiVoice让语音合成更自然更个性 在虚拟主播的一场直播中,观众听到她因剧情推进而突然哽咽落泪;游戏里,NPC在危急时刻怒吼“快跑!”,语气紧张到几乎破音——这些声音并非来自真人…

张小明 2026/1/10 15:19:57 网站建设