文章目录

  • 1.结构体struct
    • 1.1 声明结构体
    • 1.2 初始化结构体 以及 传参
  • 2. 结构体数组、append
  • 3. 接口返回 含数组的结构体 常用写法
    • json string转struct

1.结构体struct

看这个文章,看一个struct

1.1 声明结构体

// student
type Student struct {Name stringAge  uint64
}// class
type Class struct {ClassNo       uint64ClassName     stringStudents      []Student //数组IsHonor       bool
}

1.2 初始化结构体 以及 传参

    // 初始化结构体的方法一:class := Class{ClassNo:  302ClassName: "三年级二班",Students:    students, // students变量IsHonor:    false,}key, err := t.Get(class) //普通func (s *SService) Get(class Class){  //普通}// 初始化结构体的方法二: 取地址class := &Class{ClassNo:  302ClassName:    "三年级二班",Students:    students, // students变量IsHonor:    false,}key, err := t.Get(class) // 传的是个”地址“func (s *SService) Get(class *Class){ // 用”指针“接} // 初始化结构体的方法三:class := Class{}class.ClassNo = 302class.ClassName = "三年级二班"class.Students = studentsclass.IsHonor = false

2. 结构体数组、append

 var classOne Classvar classList []Classfor ....:取到值先赋给classOne,再用classList = append(classList, classOne)

3. 接口返回 含数组的结构体 常用写法

type RespData struct {Name  string `json:"name"`Age uint64 `json:"age"`
}type JiekouResponse struct { List []RespData `json:"list"`
}func (t *TController) SuggestGet(){res := &JiekouResponse{}res.List = []RespData{} // 定义数组s := service.NewTService(t.param)allData := s.GetAllData()var dataOne RespDatafor _, data := range allData { // 循环赋值dataOne.Name = data.NamedataOne.Age = data.Ageres.List = append(res.List, dataOne) // 数组append给值}
}

json string转struct

type UserInfo struct {ParentNodeId  int64  `json:"parent_node_id"`NodeTypeId    uint32 `json:"node_type_id"`DimeNodeValue string `json:"dime_node_value"`CnName        string `json:"cn_name"`EnName        string `json:en_name"`
}// 解析userInfolist:从json string到structuserinfoStr := req.Userinfolist // req.Userinfolist是个list,list里是非常多的json string [{"a":1,"b":2,"c":"3"},{},...]var userInfolist []*UserInfoif userinfoStr != "" {err := json.Unmarshal([]byte(userinfoStr), &userInfolist)fmt.Println("userInfolist:", userInfolist)fmt.Println(userInfolist[0].DimeNodeValue)if err != nil {return res, err}}

其他文章参考:golang结构体-对象和指针-函数赋予

golang 结构体struct、数组、结构体数组 定义与赋值 、json string转struct相关推荐

  1. java二位数组biaoda_java基础 day14 数组 二维数组 冒泡排序 例题(正则表达式)

    数组: 数组静态初始化及遍历 package wwl.array; import java.util.Arrays; /** * 数组的静态初始化及数组遍历 * */ public class Tes ...

  2. C/C++结构体struct 与结构体数组和枚举型enum的结合使用

    C/C++结构体struct 与结构体数组和枚举型enum的结合使用 #include "stdafx.h" #include <string> #include &l ...

  3. Golang——结构体创建与初始化、结构体与数组、结构体与切片、结构体与map、结构体作为函数参数、结构体方法、结构体方法继承

    结构体: 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合 结构体可以很好的管理一批有联系的数据,使用结构体可以提高程序的易读性,类似于Java的类一样 不能在结构体直接赋值 字段名必须唯一 ...

  4. c/c++教程 - 1.10 结构体 使用typedef定义struct结构体 结构体数组 结构体指针 结构体嵌套 结构体做函数参数 结构体const

    十二.结构体 (1)结构体定义和使用 基本概念:结构体属于用户自定义的数据类型,允许用户存储不同的数据类型. 参考视频:https://www.bilibili.com/video/BV1et411b ...

  5. C语言学习笔记11-结构体(struct、结构作为函数参数、结构数组)、联合体/共用体typedef; union(大、小端序)

    C语言-结构类型 程序中的数据都需要有类型支撑,当数据很复杂时(不是简单的一个值,如时间信息:年月日时分秒6个数据需要作为一个整体),我们需要声明一个新的结构类型来描述这种复合的数据(可以包含很多不同 ...

  6. golang json转结构体中嵌套多个数组_ElasticSearch第六篇:复合数据类型-数组,对象...

    在ElasticSearch中,使用JSON结构来存储数据,一个Key/Value对是JSON的一个字段,而Value可以是基础数据类型,也可以是数组,文档(也叫对象),或文档数组,因此,每个JSON ...

  7. C语言结构体值复制与字符数组值复制的比较测试

    结构体值复制与变量值复制看起来用法差不多,字符数组值复制才是比较特殊的,因为它的名字代表的是指针而不知直接指向内存 下面是各自值复制的代码 #include <stdio.h> #incl ...

  8. 一维数组,二维数组,三维数组,数组与指针,结构体数组,通过改变指针类型改变访问数组的方式

     打印数组中的每个元素,打印每个元素的地址: #include <stdio.h> #include <stdlib.h> void main(void) { int a[ ...

  9. c++ 数组 结构体

    接下来的一点时间我将会记录下我看的c++的一些心得体会,人贵在坚持,希望我可以一直坚持下去!!Go Fighting! 一.c++复合数据类型: 数组类型的一些注意事项: sizeof的用法: 当用在 ...

最新文章

  1. Windows server 2003 IP路由配置
  2. 1036: [ZJOI2008]树的统计Count
  3. 洛谷 P4127 [AHOI2009]同类分布
  4. 头条+腾讯 双杀面经(NLP实习)
  5. boost::signals2模块连接扩展槽的示例程序,使用信号的 connect_extended 和 extended_slot_type
  6. python image 转成字节_就是这么牛!三行Python代码,让数据处理速度提高2到6倍
  7. charles 安装 ssl_最全面的解决Charles手机抓包的证书问题(步骤非常详细)
  8. Google服务你都用了哪些?
  9. 剑指offer-JZ54 二叉搜索树的第k个节点(附思路)
  10. python arp_用Python构造ARP请求、扫描、欺骗
  11. mongoose的操作及其常用命令
  12. 华为机型深色模式下问题
  13. 如何使新浪播放器自动播放_七夕小子_新浪博客
  14. 贵港市计算机成绩查询,贵港驾驶证扣分查询
  15. linux系统制作usb启动盘,教你制作Linux操作系统的USB启动盘
  16. 京东打单发货如何识别疫情地区?
  17. python将图片合成视频
  18. WORD2003电子签名插件(支持手写、签章)
  19. 投资收购微盟、博易智软后,要做中国Salesforce+ Palantir的天马股份再发智能商业π型战略
  20. 北大软微计算机应用基础真题,北京大学软微考研参考书、考研真题及复习经验...

热门文章

  1. 彻底吃透浏览器的缓存机制!
  2. 服务器提示自动关机,服务器出现自动关机
  3. 2021年加密货币犯罪报告
  4. vue官方示例__todomvc总结
  5. 易语言网页登录 POST
  6. python实现十以内随机数的加减乘除
  7. 爱快docker安装青龙教程
  8. ORA-07286: sksagdi: cannot obtain device information.
  9. vue自定义组件数据双向绑定,获取vue自定义组件input框输入的值
  10. win2003使用计划任务+批处理自动定时备份文件