Golang之struct
1.用来定义复杂数据结构
2.struct里面可以包含多个字段(属性)
3.struct类型可以定义方法,注意和函数的区分。
4.struct类型是值类型
5.struct类型可以嵌套
6.Go语言没有class类型,只有struct类型
package main import "fmt" //声明结构体
type Student struct {
Name string
Age int
Score int
} func main() {
//struct字段访问,使用“点”访问
var stu Student
stu.Name = "yuchao"
stu.Age =
stu.Score =
fmt.Printf("name=%s age=%d scrore=%d", stu.Name, stu.Age, stu.Score)
}
定义struct的三种形式:
package main import "fmt" //声明结构体
//字段名和函数名一样,首字母大写,在包外可以访问
type Student struct {
Name string
Age int
Score float32
} func main() {
//struct字段访问,使用“点”访问
var stu Student
//var stu *Student = new(Student)
//var stu *Student = &Student{ }
stu.Name = "yuchao"
stu.Age =
stu.Score =
//fmt.Println(stu) //默认结构 {yuchao 18 99.1}
//fmt.Printf("name=%s age=%d scrore=%d", stu.Name, stu.Age, stu.Score) var stu1 *Student = &Student{
Age: ,
Name: "chao",
} var stu3 = Student{
Age: ,
Name: "hua",
} fmt.Println(stu1)
fmt.Println(stu3.Name)
fmt.Printf("Name:%p\n", &stu.Name)
fmt.Printf("age:%p\n", &stu.Age)
fmt.Printf("score:%p\n", &stu.Score)
}
定义结构体
var stu Student
var stu *Student = new(Student)
var stu *Student = &Student{ }
struct的内存布局,struct中的所有字段在内存是连续的,布局如下:

Golang之struct的更多相关文章
- GoLang获取struct的tag
GoLang获取struct的tag内容:beego的ORM中也通过tag来定义参数的. 获取tag的内容是利用反射包来实现的.示例代码能清楚的看懂! package main import ( &q ...
- golang print struct with key
https://play.golang.org/p/YMfpuluzef 判断结构体是否为空 打印带attribute(key) 的结构体 package main import ( "fm ...
- Golang中Struct与DB中表字段通过反射自动映射 - sqlmapper
Golang中操作数据库已经有现成的库"database/sql"可以用,但是"database/sql"只提供了最基础的操作接口: 对数据库中一张表的增删改查 ...
- golang自定义struct字段标签
原文链接: https://sosedoff.com/2016/07/16/golang-struct-tags.html struct是golang中最常使用的变量类型之一,几乎每个地方都有使用,从 ...
- golang笔记——struct
1.定义一个结构体 type User struct { userid int username string password string } 2.初始化一个结构体 有两种情况,一是得到结构体的对 ...
- [转]Golang之struct类型
http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=22312037&id=3756923 一.struct ...
- [转] golang中struct、json、map互相转化
一.Json和struct互换 (1)Json转struct例子: type People struct { Name string `json:"name_title"` Age ...
- golang 对struct进行Serialize的方法,即将存取二进制文件到struct的方法
方法一: serialize 的标准方法: 使用gob 和 base64 或 base58. 方法二: 下面是自己实现的 serialize 方法,不推荐自己实现,应该用标准方法. 代码如下: pac ...
- Golang之Struct(二叉树定义)
接招吧,看代码: package main import "fmt" //二叉树结构体 //如果每个节点有两个指针,分别用来指向左子树和右子树,我们把这样的结构叫做二叉树 type ...
随机推荐
- word 使用中 上标符号的实现
1. 首先在word 中打下一段话 如: 啦啦啦啦啦啦啦啦 然后加入你需要的上标 如 [2] 2. 选中你需要的上标,然后右击 3. 点击字体选项 出现下图: 4. 在 ...
- Python windows serial
Python windows serial 一.参考文章: Serial port programming http://www.cnblogs.com/2zhyi/p/3405339.html py ...
- BZOJ2121: 字符串游戏(DP)(字符串删单词,求最多可以删去多少)
2121: 字符串游戏 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 672 Solved: 376[Submit][Status][Discuss ...
- python虚拟环境--virtualenv和virtualenvwrapper
python虚拟环境--virtualenv和virtualenvwrapper http://www.cnblogs.com/technologylife/p/6635631.html https: ...
- nexus 使用Raw Repositories 进行maven site 发布
实际项目中我们可能需要进行maven 项目的site 文档发布,一般的处理是生成之后,然后在进行发布到一个静态 服务器进行页面访问,nexus3 提供了一个Raw Repositories 很方便可以 ...
- 使用jquery触发a标签跳转
错误示例 <a href="http://www.baidu.com" target="_blank">baidu</a> // 直接是 ...
- LoadRunner安装+破解+汉化
安装 一.需要准备的东东: 1.电脑的操作系统:Win7旗舰版(不解释,这个版本安装问题最少了) 2.LoadRunner11+破解文件+汉化文件+删除注册表工具 3.强大的搜索引擎 二.安装过程 用 ...
- hdu 5909 Tree Cutting——点分治(树形DP转为序列DP)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5909 点分治的话,每次要做一次树形DP:但时间应该是 siz*m2 的.可以用 FWT 变成 siz*ml ...
- NET基础篇——反射的奥妙
反射是一个程序集发现及运行的过程,通过反射可以得到*.exe或*.dll等程序集内部的信息.使用反射可以看到一个程序集内部的接口.类.方法.字段.属性.特性等等信息.在System.Reflectio ...
- "废物利用"也抄袭——“完全”DIY"绘图仪"<二、下位机程序设计>
就不说怎么组装了吧,一把辛酸泪.说程序,因为这有两把辛酸泪……一把给下位机的C代码一把为了VB.NET的图像处理……不过就上上一篇说的,它们可以正确运行了,并且今天克服了Arduino上电过程中步进电 ...