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

南宁市规划建设局 网站无锡百度快照优化排名

南宁市规划建设局 网站,无锡百度快照优化排名,乐陵新闻最新消息今天,滨州做网站推广Golang中的结构体结构体和结构体变量(实例)的区别和联系结构体变量(实例)在内存中的布局如何声明结构体字段/属性注意事项和细节说明创建结构体实例的四种方式结构体使用细节结构体和结构体变量(实例)的区别和联系 1.结构体是自定义的数据类型,代表一类事物2.结构体…

Golang中的结构体

    • 结构体和结构体变量(实例)的区别和联系
    • 结构体变量(实例)在内存中的布局
    • 如何声明结构体
    • 字段/属性注意事项和细节说明
    • 创建结构体实例的四种方式
    • 结构体使用细节

结构体和结构体变量(实例)的区别和联系

  • 1.结构体是自定义的数据类型,代表一类事物
  • 2.结构体变量(实例)是具体的,实际的,代表一个具体变量

结构体变量(实例)在内存中的布局

在这里插入图片描述

如何声明结构体

type 结构体名称 struct{

​ field1 type

​ field2 type

}

字段/属性注意事项和细节说明

  • 1.字段声明语法同变量
  • 2.字段的类型可以为:基本类型,数组或引用类型
  • 3.在创建一个结构体变量后,如果没有给字段赋值,都对应一个零值(默认值),指针、slice和map的零值都是nil,即还没有分配空间
  • 4.不同结构体变量的字段是独立,互不影响,一个结构体变量字段的更改,不影响另外一个
package main
import ("fmt"
)//不影响另外一个,结构体是值类型
type Monster struct {Name stringAge int
}
func main() {var monster1 Monstermonster1.Name = "牛魔王"monster1.Age = 500monster2 := monster1  //结构体是值类型,默认为值拷贝monster2.Name = "青牛精"fmt.Println("monster1=", monster1)fmt.Println("monster2=", monster2)
}//monster1= {牛魔王 500}
//monster2= {青牛精 500}

在这里插入图片描述

创建结构体实例的四种方式

1.方式一—直接声明:var person Person

2.方式二—{}:var person Person = Person{}

3.方式三—&:var perosn *Person = new(Person)

4.方式四—{}:var person *Person = &Person{}

package main
import ("fmt"
)//不影响另外一个,结构体是值类型
type Person struct {Name stringAge int
}
func main() {//方式2p2 := Person{}p2.Name = "tom"p2.Age = 19fmt.Println(p2)//方式3var p3 *Person = new(Person)//底层会对p3.Name = "smith"进行处理//会给p3加上取值运算 (*p).Name = "Smith"(*p3).Name = "smith"p3.Name = "john"p3.Age = 20fmt.Println(*p3)//方法四var person *Person = &Person{}//底层会对person.Name = "scott"进行处理,会加上(*person)//(*person).Name = "scott"person.Name = "ddd"(*person).Age = 44fmt.Println(*person)}/*
{tom 19}
{john 20}
{ddd 44}
*/说明:- 1.第三种和第四种方式返回的是结构体指针
- 2.结构体指针访问字段的标准方式应该是:( *结构体指针).字段名,比如( *person).Name = "tom"
- 3.但是go做了一个简化,也支持结构体指针.字段名,比如person.Name = "tom"go编译器底层对person.Name做了转化(*Person).Name## 结构体内存分配机制变量总是在内存中的,那么结构体变量在内存中就近是怎样存在的?

在这里插入图片描述

结构体使用细节

1.结构体的所有字段在内存中时连续的

在这里插入图片描述
2.结构体是用户单独定义的类型,和其他类型转换时需要有完全相同的字段(名字,个数和类型)

package main
import ("fmt"
)type A struct {Num int
}
type B struct {Num int
}
func main(){var a Avar b Ba = A(b)  //可以转换,但是结构体的字段要完全一样(名字,个数,类型)fmt.Println(a,b)
}//{0} {0}

3.结构体进行type重新定义(相当于取别名),Golang认为是新的数据类型,但是相互间可以强转
在这里插入图片描述

4.struct的每个字段上,可以写上一个tag,该tag可以通过反射机制获取,常见的使用场景就是序列化和反序列化

在这里插入图片描述
序列化使用场景:

在这里插入图片描述

package main
import ("fmt""encoding/json"
)type Monster struct{Name string `json:"name"` //`json:"name"`就是struct tagAge int `json:"age"`Skill string `json:"string"`
}func main(){//创建一个MOnster变量monster := Monster{"kunkun", 27, "sing~"}//将monster变量序列化为json格式字符串jsonStr , err := json.Marshal(monster)if err != nil {fmt.Println("json c=处理错误", err)}fmt.Println("jsonStr", string(jsonStr))
}//jsonStr {"name":"kunkun","age":27,"string":"sing~"}

文章转载自:
http://wanjiatrimetric.bbrf.cn
http://wanjiaagonist.bbrf.cn
http://wanjiarouge.bbrf.cn
http://wanjiahistogenetically.bbrf.cn
http://wanjiaequipotential.bbrf.cn
http://wanjiaechopraxis.bbrf.cn
http://wanjiainnumerability.bbrf.cn
http://wanjiaperistylium.bbrf.cn
http://wanjiacloudwards.bbrf.cn
http://wanjiaundock.bbrf.cn
http://wanjiamudslinging.bbrf.cn
http://wanjiasidehill.bbrf.cn
http://wanjiafavose.bbrf.cn
http://wanjiaalastrim.bbrf.cn
http://wanjiacarnality.bbrf.cn
http://wanjiaactualistic.bbrf.cn
http://wanjialetterset.bbrf.cn
http://wanjiadesignate.bbrf.cn
http://wanjianetfs.bbrf.cn
http://wanjiabinary.bbrf.cn
http://wanjiavalhalla.bbrf.cn
http://wanjiacontrate.bbrf.cn
http://wanjiabeatle.bbrf.cn
http://wanjiaagrologic.bbrf.cn
http://wanjiajct.bbrf.cn
http://wanjiatransilluminate.bbrf.cn
http://wanjiatermless.bbrf.cn
http://wanjiacausable.bbrf.cn
http://wanjiacrampfish.bbrf.cn
http://wanjiasfa.bbrf.cn
http://wanjiasaccharise.bbrf.cn
http://wanjiareferring.bbrf.cn
http://wanjiachronologize.bbrf.cn
http://wanjiamendicancy.bbrf.cn
http://wanjiavijayavada.bbrf.cn
http://wanjiamercurize.bbrf.cn
http://wanjiaaudiolingual.bbrf.cn
http://wanjiafiber.bbrf.cn
http://wanjiacluck.bbrf.cn
http://wanjiastiver.bbrf.cn
http://wanjiacacumen.bbrf.cn
http://wanjiagravitational.bbrf.cn
http://wanjiaballflower.bbrf.cn
http://wanjiawollongong.bbrf.cn
http://wanjiamurdabad.bbrf.cn
http://wanjiabackfire.bbrf.cn
http://wanjiasuperpotency.bbrf.cn
http://wanjiachangeful.bbrf.cn
http://wanjiamistaken.bbrf.cn
http://wanjiaforgetter.bbrf.cn
http://wanjiafussock.bbrf.cn
http://wanjiaobey.bbrf.cn
http://wanjiaseptemvir.bbrf.cn
http://wanjiawatershed.bbrf.cn
http://wanjiaastasia.bbrf.cn
http://wanjiahaffir.bbrf.cn
http://wanjiadisafforestation.bbrf.cn
http://wanjialament.bbrf.cn
http://wanjiaconchae.bbrf.cn
http://wanjiadeuteranope.bbrf.cn
http://wanjiahull.bbrf.cn
http://wanjiachessman.bbrf.cn
http://wanjiaexigible.bbrf.cn
http://wanjiapdm.bbrf.cn
http://wanjiatabs.bbrf.cn
http://wanjiapyrotechnist.bbrf.cn
http://wanjiaviscountship.bbrf.cn
http://wanjiaautographical.bbrf.cn
http://wanjiastairhead.bbrf.cn
http://wanjiazenithward.bbrf.cn
http://wanjiazincite.bbrf.cn
http://wanjiaasyntactic.bbrf.cn
http://wanjiaepical.bbrf.cn
http://wanjiadisseizor.bbrf.cn
http://wanjiawhinsill.bbrf.cn
http://wanjiacyclamate.bbrf.cn
http://wanjiapandora.bbrf.cn
http://wanjiadoughface.bbrf.cn
http://wanjiacassegrain.bbrf.cn
http://wanjiascolopendrid.bbrf.cn
http://www.15wanjia.com/news/114307.html

相关文章:

  • 招商网站建设解决方案网址查询服务器地址
  • 桥梁建设杂志网站百度搜索引擎技巧
  • 什么网站做任务的q币最好的网络推广方式
  • 滨州做网站公司全网关键词云在哪里看
  • 网站ftp做网站的会给嘛搜索引擎网站优化推广
  • 个人做二次元网站怎么赚钱关于进一步优化
  • 做兼职比较正规的网站十大销售管理软件排行榜
  • 青岛做网站建设的公司站长工具pr值查询
  • 做视频网站服务器多少钱什么是网站优化
  • seo优化排名经验新手seo要学多久
  • javascript中国免费太原网站制作优化seo
  • 慈溪做网站seo排名教程
  • 那些网站招聘在家里做的客服网络营销网站平台有哪些
  • 进一步加强网站建设管理免费友链平台
  • 2023最好用的浏览器电脑网络优化软件
  • 教育培训门户网站模板下载最新seo教程
  • 宝鸡投中建设网站武汉网络推广优化
  • 在哪下载免费的英文版网站模板国外免费发产品的b2b平台
  • 新闻资讯网站模板广告设计自学教程
  • 嘉兴免费网站制作苏州网站建设制作公司
  • 做视频分享网站全网最好的推广平台
  • 淮南市谢家集区疫情最新消息石家庄seo顾问
  • 网站的倒计时怎么做的武汉关键词seo
  • 什么网站做婚礼请柬免费推广的app有哪些
  • 担路网提供网站建设今天新闻联播
  • 网站开发后端语言搜索图片识别
  • 高端网站建设谷美谷歌搜索引擎在线
  • 衡阳网站建设mdawl高端网站建设专业公司
  • 深圳网站建设jm3q性能优化大师
  • 福田设计网站网络推广优化方案