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 ---------------------------------------------------------- ...
随机推荐
- node的consoidate的插件统一
使用consolidate.ejs.的这种形式. let express = require('express'); let app = express(); app.set('views','返回的 ...
- [转帖]GitHub上整理的一些工具
GitHub上整理的一些工具 技术站点 Hacker News:非常棒的针对编程的链接聚合网站 Programming reddit:同上 MSDN:微软相关的官方技术集中地,主要是文档类 inf ...
- php 中instanceof的使用
转载:https://www.cnblogs.com/tengjian/p/7999107.html 作用:(1)判断一个对象是否是某个类的实例,(2)判断一个对象是否实现了某个接口. 第一种用法: ...
- python模块_pcharm导入包的问题
1.添加pip包 2.导入项目需要由内置包(library root)
- ubuntu 环境 celery配置全解
继续尝试没有时间弄明白的技术. celery官方文档地址:http://docs.celeryproject.org/en/stable/getting-started/introduction.ht ...
- linux bin & sbin different
linux bin & sbin different flutter & $PATH http://blog.taylormcgann.com/2014/04/11/differenc ...
- ajax readystatue
onReadyStatueChange存儲狀態處理函數,當readyStatue改變時,調用該函數. readyStatue的狀態: 0 請求未初始化 1 服務器連接已建立 2 請求已接收 ...
- python之tkinter使用-复选框操作
# tkinter复选框操作 import tkinter as tk root = tk.Tk() root.title('问卷调查') root.geometry('220x80') # 设置窗口 ...
- TiKV 源码解析系列文章(三)Prometheus(上)
本文为 TiKV 源码解析系列的第三篇,继续为大家介绍 TiKV 依赖的周边库 rust-prometheus,本篇主要介绍基础知识以及最基本的几个指标的内部工作机制,下篇会介绍一些高级功能的实现原理 ...
- 【BZOJ2244】[SDOI2011]拦截导弹(CDQ分治)
[BZOJ2244][SDOI2011]拦截导弹(CDQ分治) 题面 BZOJ 洛谷 题解 不难发现这就是一个三维偏序+\(LIS\)这样一个\(dp\). 那么第一问很好求,直接\(CDQ\)分治之 ...