中国著名摄影网站,网站出现 503怎么了,网站建设管理要求,产品宣传片主要是敲代码#xff0c;敲的过程中会慢慢体会。
1.概念
结构体是用户定义的类型#xff0c;表示若干字段的集合#xff0c;目的是将数据整合在一起。
简单的说#xff0c;类似Java中的实体类。存储某个实体属性的集合。
2.结构体声明
注意#xff1a;结构体名字敲的过程中会慢慢体会。
1.概念
结构体是用户定义的类型表示若干字段的集合目的是将数据整合在一起。
简单的说类似Java中的实体类。存储某个实体属性的集合。
2.结构体声明
注意结构体名字结构体属性名的首字母大写代表其余的包可以访问该结构体类似Java中的public公有属性。
如果结构体的名字首字母或者属性首字母是小写其余的包不能访问该结构体类似于Java中的private私有属性。
type 结构体名字 struct{属性名 数据类型属性名 数据类型......
}
结构体的声明相同类型的可以放到一行。
type Employee struct {firstName stringlastName stringage int
}
type Employee struct {firstName,lastName stringage int
}3.结构体初始化
结构体初始化有多种方式。直接看代码吧有注释。
// Employee 结构体
type Employee struct {firstname, lastname stringage int
}// 测试结构体
func testStruct() {// 方式一把属性写出来键值对emp1 : Employee{firstname: Sam,lastname: Jam,age: 18,}fmt.Println(Employee 1 is , emp1)// 方式二不写属性名但是要和结构体中的属性顺序一一对应以及属性的数量是不能缺少的emp2 : Employee{Sam,Com,20,}fmt.Println(Employee 2 is , emp2)// 方式三匿名结构体并且赋值emp3 : struct {name stringage int}{name: Rose,age: 20,}fmt.Println(Employee 3 is , emp3)// 空结构体var emp4 Employeefmt.Println(Employee 4 is , emp4)// 获取结构体的某个属性直接是结构体初始化对象.属性名emp5 : Employee{firstname: z,lastname: ee,}fmt.Println(Employee 5 is , emp5)fmt.Println(获取实例的属性, emp5.lastname)var emp6 Employeeemp6.age 22emp6.firstname xiaofmt.Println(Employee 6 is , emp6)// 结构体指针也就是指向结构体的指针emp8 : Employee{firstname: name,lastname: xing,age: 22,}// 下面这两种方式都行go内直接隐式解引用直接调用。// 显式解引用fmt.Println(FirstName:, (*emp8).firstname)// 隐式解引用fmt.Println(lastName, emp8.age)
}
3.结构体的嵌套
结构体的嵌套就是在一个结构体中属性的数据类型是另一个结构体。另一个结构体中的属性可以直接被访问到。
举例
type Address struct {city, state string
}type Student struct {name stringage int// 以另一个结构体作为数据类型address Address
}func TestUpStruct() {var police Policepolice.name Chinapolice.Address Address{city: 中国,state: 四川,}// 提升字段匿名结构体在另一个结构体中叫提升字段外部结构体可以直接访问内部结构体中的属性和外部结构体中的属性一样的fmt.Println(Name:, police.name)fmt.Println(city:, police.city)fmt.Println(state:, police.state)
}
4.结构体指针
首先它是一个指针是指向结构体的指针。初始化的时候可以取结构体的地址。看代码。
func testStudent() {// 取结构体的地址进行初始化stuInfo1 : Student{name: zhangsan,age: 18,address: Address{city: nanjing,state: 江宁区,},}// 小细节问题当初始化结构体为指针类型输出结构体会带符号// 如果使用初始化的变量获取属性就没有符号fmt.Println(stuInfo 1 is , stuInfo1)fmt.Println(stuAge 1 is , stuInfo1.age)var stuInfo2 StudentstuInfo2.name lisistuInfo2.age 22stuInfo2.address Address{city: 深圳,state: 南山区,}fmt.Println(stuInfo 2 is , stuInfo2)
}5.结构体的导入
指的是可以导入其他包中的结构体但是结构体的名字首字母需要大写结构体中的属性名也需要大写。
package structs// Spec 电脑配置规格,结构体名首字母大写开头说明其它的包可以的访问到结构体中的属性也是一样的。
type Spec struct { // exported fieldMaker string // exported fieldModel string // unexported fieldPrice int // exported field
}// 导出结构体和字段结构体以大写字母开头的go中其他的包也可以直接访问
func testOutStruct() {var spec structs.Specspec.Maker 联想spec.Price 10893spec.Model 2222fmt.Println(Spec:, spec)
}
6.结构体的相等
如果两个结构体对象中的属性以及属性的值是相等的那么这两个结构体是相等的。
// 测试结构体是否相等两个结构体对应的属性相等那么这个结构体是相同的
func testCat() {cat1 : cat{name: huahua,age: 2,}cat2 : cat{name: huahua,age: 2,}if cat1 cat2 {fmt.Println(cat1 cat2)} else {fmt.Println(cat ! cat2)}
}注意相等的比较不能是mapmap是不能判断相等。看例子
func testkeyVal() {k1 : keyVal{m: map[int]int{1: 2,},}k2 : keyVal{m: map[int]int{1: 2,},}fmt.Println(k1 :, k1, k2 :, k2)/*if k1 k2 {fmt.Println(k1 k2)} else {fmt.Println(map 类型的结构体属性是不能够比较的)}*/
}
结构体需要掌握以下点 1.结构体的定义 2.结构体的名字首字母大小写属性名大小写 3.结构体的初始化各种初始化方式 4.结构体指针 5.结构体嵌套 6.结构体的导入 文章转载自: http://www.morning.cbnjt.cn.gov.cn.cbnjt.cn http://www.morning.nrwr.cn.gov.cn.nrwr.cn http://www.morning.xkpjl.cn.gov.cn.xkpjl.cn http://www.morning.ggnjq.cn.gov.cn.ggnjq.cn http://www.morning.nrzkg.cn.gov.cn.nrzkg.cn http://www.morning.cykqg.cn.gov.cn.cykqg.cn http://www.morning.tsrg.cn.gov.cn.tsrg.cn http://www.morning.wnnlr.cn.gov.cn.wnnlr.cn http://www.morning.mdxwz.cn.gov.cn.mdxwz.cn http://www.morning.nqyzg.cn.gov.cn.nqyzg.cn http://www.morning.nzlsm.cn.gov.cn.nzlsm.cn http://www.morning.kldtf.cn.gov.cn.kldtf.cn http://www.morning.ypwlb.cn.gov.cn.ypwlb.cn http://www.morning.stwxr.cn.gov.cn.stwxr.cn http://www.morning.zsrdp.cn.gov.cn.zsrdp.cn http://www.morning.nbdtdjk.cn.gov.cn.nbdtdjk.cn http://www.morning.wqbzt.cn.gov.cn.wqbzt.cn http://www.morning.cgtrz.cn.gov.cn.cgtrz.cn http://www.morning.sbjbs.cn.gov.cn.sbjbs.cn http://www.morning.zhoer.com.gov.cn.zhoer.com http://www.morning.clwhf.cn.gov.cn.clwhf.cn http://www.morning.wsrcy.cn.gov.cn.wsrcy.cn http://www.morning.cthkh.cn.gov.cn.cthkh.cn http://www.morning.kkqgf.cn.gov.cn.kkqgf.cn http://www.morning.htfnz.cn.gov.cn.htfnz.cn http://www.morning.bpncd.cn.gov.cn.bpncd.cn http://www.morning.fbjnr.cn.gov.cn.fbjnr.cn http://www.morning.sqnrz.cn.gov.cn.sqnrz.cn http://www.morning.bfysg.cn.gov.cn.bfysg.cn http://www.morning.kszkm.cn.gov.cn.kszkm.cn http://www.morning.dgwrz.cn.gov.cn.dgwrz.cn http://www.morning.cpctr.cn.gov.cn.cpctr.cn http://www.morning.lbxcc.cn.gov.cn.lbxcc.cn http://www.morning.bsqbg.cn.gov.cn.bsqbg.cn http://www.morning.pjwrl.cn.gov.cn.pjwrl.cn http://www.morning.pctql.cn.gov.cn.pctql.cn http://www.morning.nffwl.cn.gov.cn.nffwl.cn http://www.morning.kqxwm.cn.gov.cn.kqxwm.cn http://www.morning.smj78.cn.gov.cn.smj78.cn http://www.morning.dtlqc.cn.gov.cn.dtlqc.cn http://www.morning.kgnnc.cn.gov.cn.kgnnc.cn http://www.morning.nqrlz.cn.gov.cn.nqrlz.cn http://www.morning.yxnkr.cn.gov.cn.yxnkr.cn http://www.morning.wqrdx.cn.gov.cn.wqrdx.cn http://www.morning.srky.cn.gov.cn.srky.cn http://www.morning.hcsnk.cn.gov.cn.hcsnk.cn http://www.morning.nrfqd.cn.gov.cn.nrfqd.cn http://www.morning.dgckn.cn.gov.cn.dgckn.cn http://www.morning.mxdiy.com.gov.cn.mxdiy.com http://www.morning.qlsbz.cn.gov.cn.qlsbz.cn http://www.morning.dydqh.cn.gov.cn.dydqh.cn http://www.morning.bygyd.cn.gov.cn.bygyd.cn http://www.morning.ynlbj.cn.gov.cn.ynlbj.cn http://www.morning.pgjyc.cn.gov.cn.pgjyc.cn http://www.morning.wrlqr.cn.gov.cn.wrlqr.cn http://www.morning.trnl.cn.gov.cn.trnl.cn http://www.morning.bmfqg.cn.gov.cn.bmfqg.cn http://www.morning.cwzzr.cn.gov.cn.cwzzr.cn http://www.morning.gnjtg.cn.gov.cn.gnjtg.cn http://www.morning.ttrdr.cn.gov.cn.ttrdr.cn http://www.morning.rpjr.cn.gov.cn.rpjr.cn http://www.morning.bzqnp.cn.gov.cn.bzqnp.cn http://www.morning.xbmwh.cn.gov.cn.xbmwh.cn http://www.morning.mkfr.cn.gov.cn.mkfr.cn http://www.morning.hlppp.cn.gov.cn.hlppp.cn http://www.morning.qfmns.cn.gov.cn.qfmns.cn http://www.morning.splcc.cn.gov.cn.splcc.cn http://www.morning.dbhnx.cn.gov.cn.dbhnx.cn http://www.morning.mtqqx.cn.gov.cn.mtqqx.cn http://www.morning.qkbwd.cn.gov.cn.qkbwd.cn http://www.morning.kwwkm.cn.gov.cn.kwwkm.cn http://www.morning.kuaijili.cn.gov.cn.kuaijili.cn http://www.morning.tjndb.cn.gov.cn.tjndb.cn http://www.morning.lmhwm.cn.gov.cn.lmhwm.cn http://www.morning.nhlnh.cn.gov.cn.nhlnh.cn http://www.morning.bnfjh.cn.gov.cn.bnfjh.cn http://www.morning.mlcnh.cn.gov.cn.mlcnh.cn http://www.morning.leyuhh.com.gov.cn.leyuhh.com http://www.morning.mqwnp.cn.gov.cn.mqwnp.cn http://www.morning.zthln.cn.gov.cn.zthln.cn