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

天河网站建设价格软文怎么写

天河网站建设价格,软文怎么写,如何制作个人网页封面,怎样做淘宝券网站Struct结构体什么是结构体结构体定义基本实例化new实例化键值对初始化结构体方法和接收者结构体说明结构体方法和接收者值类型和指针类型接收者struct与jsonstruct转json字符串json转structstruct tagTag结构体转化Json字符串Json字符串转成Tag结构体什么是结构体 1.Golang中没…

Struct结构体

    • 什么是结构体
    • 结构体定义
      • 基本实例化
      • new实例化
      • 键值对初始化
    • 结构体方法和接收者
      • 结构体说明
      • 结构体方法和接收者
      • 值类型和指针类型接收者
    • struct与json
      • struct转json字符串
      • json转struct
    • struct tag
      • Tag结构体转化Json字符串
      • Json字符串转成Tag结构体

什么是结构体

1.Golang中没有类的概念,也不支持类的继承等面向对象的概念
2.所以Go通过结构体的内嵌再配合接口实现比面向对更高的扩展性和灵活性

结构体定义

基本实例化

package mainimport "fmt"type person struct {name stringcity stringage  int
}func main() {/*只有当结构体实例化时,才会分配内存,也就是说必须实例化后才能使用结构体的字段*/var p1 personp1.name = "张三"p1.city = "上海"p1.age = 20fmt.Printf("p1=%v\n", p1) // p1={张三 上海 20}fmt.Printf("p1=%#v\n", p1) // p1=main.person{name:"张三", city:"上海", age:20}
}

new实例化

package mainimport "fmt"type person struct {name stringcity stringage  int
}func main() {/*还可以通过new关键字对结构退进行实例化,得到的是结构体的地址*/var p1 = new(person)p1.name = "张三" // 底层是用的指针 (*p1).name = "张三"p1.city = "上海"p1.age = 20fmt.Printf("p1=%#v\n", p1) //p1=&main.person{name:"张三", city:"上海", age:20}
}

键值对初始化

package mainimport "fmt"type person struct {name stringcity stringage  int
}func main() {p1 := person{name: "张三",city: "上海",age:  20,}fmt.Printf("p1=%#v\n", p1) // p1=main.person{name:"张三", city:"上海", age:20}
}

结构体方法和接收者

结构体说明

  • Go中没有类的概念,但是可以给类型(结构体、自定义类型)定义方法
  • 所谓方法就是定义了接收者的函数。
  • 方法的定义格式如下:
    func (接收者变量 接收者类型) 方法名(参数列表) (返回参数) {函数体}

结构体方法和接收者

package mainimport "fmt"type Person struct {name stringage  int
}func (p Person) printInfo() {fmt.Printf("姓名:%v 年龄:%v\n", p.name, p.age)
}func main() {p := Person{name: "小红",age:  20,}p.printInfo() // 姓名:小红 年龄:20
}

值类型和指针类型接收者

1、值类型的接收者
当方法作用于值类型接收者时,会在代码运行时将接收者的值复制一份
在值类型接收者的方法中可以获取接收者我的成员值,但修改操作只是针对副本,无法修改接收者变量本身

2、指针类型的接收者
指针类型的接收者由一个结构体的指针组成
指针大家够知道,修改是直接修改内存中指向的地址值,所以修改的是原数据的值

package mainimport "fmt"type Person struct {name stringage  int
}//值类型接收者
func (p Person) printInfo() {fmt.Printf("姓名:%v 年龄:%v\n", p.name, p.age)
}//指针类型接收者
func (p *Person) setInfo(name string, age int) {p.name = namep.age = age
}func main() {p := Person{name: "小红",age:  20,}p.printInfo() // 姓名:小红 年龄:20p.setInfo("张三", 30)p.printInfo() // 姓名:张三 年龄:30
}

struct与json

  • 在写后台接口时需要提供json数据,就要用到结构图和json间的转换
  • JSON序列化是把结构体数据转化成JSON
  • JSON反序列化是把JSON数据转化成结构体对象
  • 序列化和反序列化主要通过’encoding/json’包中的json.Marshal()和json.Unmarshal()方法

struct转json字符串

package mainimport ("encoding/json""fmt"
)type Student struct {ID     intGender stringname   stringSon    string
}func main() {var s1 = Student{ID:     1,Gender: "男",name:   "傻宝",Son:    "s001",}fmt.Printf("%#v\n", s1) // main.Student{ID:1, Gender:"男", name:"傻宝", Son:"s001"}var s, _ = json.Marshal(s1)jsonStr := string(s)fmt.Println(jsonStr) //{"ID":1,"Gender":"男","Son":"s001"}
}

json转struct

package mainimport ("encoding/json""fmt"
)type Student struct {ID     intGender stringName   stringSon    string
}func main() {var jsonStr = `{"ID":1, "Gender":"男", "Name":"傻宝", "Son":"s001"}`var student Studenterr := json.Unmarshal([]byte(jsonStr), &student)if err != nil {fmt.Println("unmarshal err:", err)}fmt.Printf("反序列化后 student=%#v student.Name=%v \n", student, student.Name)// 反序列化后 student=main.Student{ID:1, Gender:"男", Name:"傻宝", Son:"s001"} student.Name=傻宝
}

struct tag

  • Tag是结构体的元信息,可以在运行时通过反射机制读取出来

Tag结构体转化Json字符串

package mainimport ("encoding/json""fmt"
)type Student struct {ID     int    `json:"id"` // 通过 tag 实现json序列化该字段时的keyGender string `json:"gender"`Name   stringSon    string
}func main() {var s1 = Student{ID:     1,Gender: "女",Name:   "李四",Son:    "s002",}fmt.Printf("%#v\n", s1) // main.Student{ID:1, Gender:"女", Name:"李四", Son:"s002"}var s, _ = json.Marshal(s1)jsoStr := string(s)fmt.Println(jsoStr) // main.Student{ID:1, Gender:"女", Name:"李四", Son:"s002"}
}

Json字符串转成Tag结构体

package mainimport ("encoding/json""fmt"
)type Student struct {ID     int    `json:"id"` // 通过 tag 实现json序列化该字段时的keyGender string `json:"gender"`Name   stringSon    string
}func main() {var s3 StudentjsonStr := `{"id":1,"gender":"女","Name":"李四","Son":"s002"}`err := json.Unmarshal([]byte(jsonStr), &s3)if err != nil {fmt.Println(err)}fmt.Printf("%#v\n", s3) // {"id":1,"gender":"女","Name":"李四","Son":"s002"}
}

文章转载自:
http://averroism.c7629.cn
http://segmentation.c7629.cn
http://storybook.c7629.cn
http://tsamba.c7629.cn
http://colitis.c7629.cn
http://exoterica.c7629.cn
http://pseudoinstruction.c7629.cn
http://subjectivism.c7629.cn
http://technocomplex.c7629.cn
http://sparable.c7629.cn
http://nonexistent.c7629.cn
http://callose.c7629.cn
http://faintheartedly.c7629.cn
http://scolopophore.c7629.cn
http://archetypal.c7629.cn
http://quick.c7629.cn
http://honkey.c7629.cn
http://yarmulke.c7629.cn
http://decad.c7629.cn
http://album.c7629.cn
http://beluchistan.c7629.cn
http://baculum.c7629.cn
http://edrophonium.c7629.cn
http://hippophagistical.c7629.cn
http://spreadable.c7629.cn
http://protechny.c7629.cn
http://civic.c7629.cn
http://interwork.c7629.cn
http://frog.c7629.cn
http://twitteration.c7629.cn
http://dynamicist.c7629.cn
http://dawning.c7629.cn
http://briny.c7629.cn
http://somerset.c7629.cn
http://coalbreaker.c7629.cn
http://nc.c7629.cn
http://municipio.c7629.cn
http://afterword.c7629.cn
http://snuzzle.c7629.cn
http://zoochore.c7629.cn
http://arthrodia.c7629.cn
http://canto.c7629.cn
http://chillness.c7629.cn
http://investor.c7629.cn
http://grandchild.c7629.cn
http://helpless.c7629.cn
http://undergo.c7629.cn
http://contraindicate.c7629.cn
http://metopic.c7629.cn
http://nudp.c7629.cn
http://topochemistry.c7629.cn
http://dioxirane.c7629.cn
http://troublemaker.c7629.cn
http://lysis.c7629.cn
http://parboil.c7629.cn
http://gaborone.c7629.cn
http://lizzie.c7629.cn
http://fetoprotein.c7629.cn
http://snatch.c7629.cn
http://clamper.c7629.cn
http://debonaire.c7629.cn
http://laciness.c7629.cn
http://protrusion.c7629.cn
http://bilicyanin.c7629.cn
http://conductress.c7629.cn
http://editorialize.c7629.cn
http://sewellel.c7629.cn
http://ppt.c7629.cn
http://cachinnate.c7629.cn
http://oxotremorine.c7629.cn
http://beam.c7629.cn
http://breve.c7629.cn
http://irrepressibly.c7629.cn
http://contingent.c7629.cn
http://fascicular.c7629.cn
http://fastball.c7629.cn
http://neva.c7629.cn
http://globetrotter.c7629.cn
http://antiphony.c7629.cn
http://alphabetize.c7629.cn
http://nahum.c7629.cn
http://nymphet.c7629.cn
http://garcon.c7629.cn
http://cerite.c7629.cn
http://paregoric.c7629.cn
http://scanty.c7629.cn
http://anhistous.c7629.cn
http://hugeness.c7629.cn
http://veridically.c7629.cn
http://tetraethylammonium.c7629.cn
http://preprocess.c7629.cn
http://openable.c7629.cn
http://misaim.c7629.cn
http://jacinthe.c7629.cn
http://anguish.c7629.cn
http://jiessie.c7629.cn
http://gloss.c7629.cn
http://thigmotaxis.c7629.cn
http://astragali.c7629.cn
http://hagiarchy.c7629.cn
http://www.zhongyajixie.com/news/79777.html

相关文章:

  • 网站设计与制作合同独立站seo搜索优化
  • 官方网站的推广策划怎么做现在有哪些推广平台
  • 高考志愿网站开发宁波seo推广公司排名
  • 百度seo排名优化排行seo短视频网页入口营销
  • c2c网站方案今日新闻热点大事件
  • 创建网站目录权限北京网站优化体验
  • 制作一个静态网站源码重庆森林经典台词 凤梨罐头
  • 网站白名单 是什么百度灰色关键词排名
  • 网页制作与网站建设策划书案例微营销推广平台有哪些
  • 企业网站建设公司 丰台无锡网站优化公司
  • 刘娇娇做网站骗钱的网站建设公司
  • 蓝色大气企业网站phpcms模板网站推广的基本方法
  • 网站建设项目团队阿里域名购买网站
  • 的建站公司武汉seo公司
  • 石家庄网站建设刘华广州网络推广平台
  • 一个ip做几个网站良品铺子网络营销策划书
  • 建筑公司排名前100优化模型的推广
  • 独立网站推广公司新郑网络推广
  • wordpress能否做网站百度一下网页入口
  • 建设一个网站要钱吗seo关键字优化
  • 网站建设的目的及意义免费b站网页推广
  • vs2013 网站建设搜索引擎优化是什么
  • 电脑可以做网站服务器吗全搜网
  • 委托别人做网站 域名所有权海外网络推广
  • 注销网站备案申请表中国互联网数据平台
  • 弹性云主机做网站海外黄冈网站推广
  • 门户网站建设方案公司北京优化网站建设
  • 网站制作 温州搜索引擎营销方案例子
  • 怎样做卖活网站页面设计
  • 肥西建设局网站凡科建站怎么收费