golang结构体
声明结构体
定义结构体使用struct关键字。在结构体内部定义它们的成员变量和类型。如果成员变量的类型相同还可以把它们写到同一行。
struct里面可以包含多个字段(属性)
struct类型可以定义方法,注意和函数的区分
struct类型是值类型
struct类型可以嵌套
golang中没有class类型,只有struct
golang中没有public、protected、private的的声明。属性的开头字母是大写的则在其它包中可以被访问,否则只能在本包中访问。类的声明和方法同上。
type stu struct {
name string
age uint8
}
结构体访问
func main() {
var stu1 = stu{
Name: "zhangsan",
age: 14,
}
fmt.Println(stu1.Name)
fmt.Println(stu1.age)
}

定义struct
var stu1 = stu{
Name: "zhangsan",
age: 14,
}
//stu2和stu3返回的都是指向结构体的指针
var stu2 = new(stu)
var stu3 *stu = &stu{
Name: "lisi",
age: 99,
}

struct初始化
struct的内存布局:struct中的所有字段在内存是连续的

package main import (
"fmt"
) type stu struct {
Name string
age uint8
} func main() { var stu2 = new(stu) var stu3 *stu = &stu{
Name: "lisi",
age: 99,
} var stu1 = stu{
Name: "zhangsan",
age: 14,
} fmt.Printf("%p\n", &stu1.Name)
fmt.Printf("%p\n", &stu1.age)
fmt.Printf("%p\n", &stu2.Name)
fmt.Printf("%p\n", &stu2.age)
fmt.Printf("%p\n", &stu3.Name)
fmt.Printf("%p\n", &stu3.age)
}

package main import (
"fmt"
) type test struct {
name string
age int
intro string
} func main() {
var stu test
stu.name = "zhangsan"
stu.age = 22
stu.intro = "mtnmdn" var stu1 = &test{
name: "lisi",
age: 12,
intro: "dasdadasd",
} fmt.Println(stu)
fmt.Println(stu1)
}

golang结构体的更多相关文章
- golang 结构体中的匿名接口
golang 结构体中的匿名接口 代码示例 golang 中,可以给结构体增加匿名field,可参考 unknwon 大神的书. 匿名字段和内嵌结构体 但,golang同时也可以给结构体定义一个匿名i ...
- golang结构体json格式化的时间格式
golang结构体json格式化的时间格式 在我们开发中,经常会解析time.Time 往往前台传过来的时候,是个string 但是我们希望在结构体转成time.Time type Param str ...
- Golang结构体值的交换
Golang结构体值的交换 一.添加结构体,多if暴力 最先遇到这个问题是在比编写PUT方法的接口时遇到. (我公司编写http put方法,是先解析json至StudentInput结构体中,通过i ...
- GO开发[五]:golang结构体struct
Go结构体struct Go语言的结构体(struct)和其他语言的类(class)有同等的地位,但Go语言放弃了包括继承在内的大量面向对象特性,只保留了组合(composition)这个最基础的特性 ...
- golang结构体、接口、反射
struct结构体 struct用来自定义复杂数据结构,可以包含多个字段属性,可以嵌套; go中的struct类型理解为类,可以定义方法,和函数定义有些许区别; struct类型是值类型. struc ...
- Golang结构体struct的使用(结构体嵌套, 匿名结构体等)
转自: https://studygolang.com/articles/11313 golang中是没有class的,但是有一个结构体struct,有点类似,他没有像java,c++中继承的概念,但 ...
- [Go] golang结构体成员与函数类型
package main import ( "fmt" ) //定义一个类型 type tsh struct { //定义成员,类型是func() string test func ...
- golang结构体排序 - 根据下载时间重命名本地文件
喜M拉Y下载音频到手机,使用ximalaya.exe 解密[.x2m]为[.m4a]根据文件下载创建时间,顺序重命名文件,方便后续播放. 源码如下:package main import ( &quo ...
- 【转】golang 结构体和方法
原文:https://www.jianshu.com/p/b6ae3f85c683 ---------------------------------------------------------- ...
随机推荐
- mysql 记录根据日期字段倒序输出
我们知道倒序输出是很简单的 select * from table order by id desc 直接这样就可以 那么现在的问题在于日期字段怎么来倒序输出 这里我们用到cast()来将指定的字段转 ...
- 使用docker-compose 大杀器来部署服务
使用docker-compose 大杀器来部署服务 上 我们都听过或者用过 docker,然而使用方式却是仅仅用手动的方式,这样去操作 docker 还是很原始. 好吧,可能在小白的眼中噼里啪啦的对着 ...
- 转《trackingjs人脸检测》
tracking.js是一个开源(BSD协议)的计算机视觉插件,在不同的浏览器中有不同的计算机视觉算法和技术,通过使用现代HTML5规范,能够实现实时颜色跟踪.人脸检测等功能,界面直观.核心文件轻量. ...
- Nginx referer防盗链模块
L75 referer模块 ngx_http_referer_module 默认编译进nginx valid_referers 指令 Syntax: valid_referers none | blo ...
- 聊聊我怎么系统学习Linux技能并快速提高的
随着电子信息科技时代的发展,学会使用计算机在我们的生活中成为了必不可少的一项技能.而作为计算机中的三大操作系统之一的Linux更是饱受计算机爱好者们的喜爱.今天我们就来和大家一起聊一聊Linux操作系 ...
- ELK--filebeat nginx模块
Nginx模块 该nginx模块解析由Nginx HTTP服务器创建的访问和错误日志 . 当你运行这个模块的时候,它会执行一些任务: 设置日志文件的默认路径(但不用担心,可以覆盖默认值) 确保每个 ...
- day12-13 文件操作b模式
为什么需要用到二进制的形式?我们默认的r w a 其实是rt wt at 即txt模式如果是图片,视频,音频,是无法用txt打开的,只能用b模式处理 b 模式是以字节形式打开 f = open(&qu ...
- day10 函数的嵌套执行顺序
函数嵌套的执行顺序,从上往下,一层一层的执行重点注意的是函数和内存的交互原理 NMAE = def yangtuo(): # 2 将整个函数放入内存编译,但是不执行 name = "yang ...
- 自学Linux Shell19.2-gawk程序高级特性
点击返回 自学Linux命令行与Shell脚本之路 19.2-gawk程序高级特性 linux世界中最广泛使用的两个命令行编辑器: sed gawk 1. gawk使用变量 编程语言共有的特性是使用变 ...
- [luogu4568][bzoj2763][JLOI2011]飞行路线
题目描述 Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在n个城市设有业务,设这些城市分别标记为00到n-1,一共有m种航线,每种航线连接两个城市,并且航线有一定 ...