package main
import (
"fmt"
"reflect"
)
/*
type :关键字之定义中新类型
struct : 结构体
结构体并非创建面向对象代码的方式,而是一种数据结构创造方式,旨在满足数据建模需求
允许:结构体套结构体,满足更复杂的数据结构
比较: 结构体比较 运算符 == ,是否相等 !=, 比较结构体首先比较他们类型
转载
2023-09-01 08:39:28
75阅读
一、指针与引用的相关概念什么是指针? 指针,全称为指针变量,是用来存储内存地址的一种变量。程序中,一般通过指针来访问其指向的内存地址中的内容(数据)。什么是引用? 引用,是C++中提出来的一种新的使用变量的方式,即,给实际变量起个别名,通过这个别名来引用实际的变量。标准C中不支持变量的引用。指针与引用的区别? 1.指针是实实在在的变量,有自己的内存存储空间,它可以指向任何有效的变量。 2.
转载
2023-07-12 14:52:13
71阅读
我们将学习指针在 Go 中的工作原理,我们还将了解 Go 指针与其他语言(如 C 和 C++)中的指针有何不同。Go 中的指针学习起来既简单又有趣。一些 Go 编程任务使用指针更容易执行,而其他任务,例如按引用调用,如果不使用指针则无法执行。什么是指针?简单来说指针是存储另一个变量的内存地址的变量。在 Go 语言变量 一节,我们说过,每个变量都是一个内存位置,每个内存位置都有定义的地址。在上图中,
转载
2023-09-01 07:35:47
60阅读
结构体(struct),是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构。 (可以理解为其他编程语言中的类)结构体既可以定义在函数内,也可以定义在函数外,函数外为全局结构体可以跨包访问(前提是结构体首字母大写)结构体变量是值类型,可以使用fmt.Printf("%p", &结构体变量)来查看其内存地址;由于结构体是值类型,在方法传递时,希望传递的是结构体地址,这时就可以使用结
转载
2023-09-27 18:56:16
55阅读
一、结构体·Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。·结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。结构体-定义结构体定义需要使用 type 和 struct 语句。struct 语句定义一个新的数据类型,结构体中有一个或多个成员。type 语句设定了结构体的名称。结构体的格式如下:type struct_variable_type s
转载
2023-06-06 22:50:35
284阅读
Go语言 文章目录Go语言9. 结构体9.1 理解结构体9.2 定义结构体9.3 实例化结构体9.3.1 标准实例化9.3.2 new函数实例化9.3.3 取地址实例化9.3.4 访问成员9.4 初始化结构体9.4.1 键值对格式初始化9.4.2 列表格式初始化9.5 结构体方法9.5.1 指针类型接受者9.5.2 值类型接受者9.6 结构体内嵌9.6.1 初始化结构体内嵌9.6.2 内嵌匿名结构
由于结构体是值类型,在方法传递时希望传递结构体地址,可以使用时结构体指针完成可以结合new(T)函数创建结构体指针peo := new(People)
//因为结构体本质是值类型,所以创建结构体指针时已经开辟了内存空间
fmt.Println(peo == nil) //输出:false
//由于结构体中属性并不是指针类型,所以可以直接调用
peo.Name = "
转载
2023-06-24 23:06:19
118阅读
上一篇博客介绍了 Go 指针的相关内容,本篇博客主要分享 Go 结构体和指针。结构体定义Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。实例:type Rect struct {
width float64
length float64
}上述代码定义了一个矩形结构体,首先是关键是 type 表
1.指针概念:存放数据的内存地址func main() {
a := 10
fmt.Printf("a的地址是:%p\n", &a)
/*定义指针*/
var p1 *int
fmt.Println(p1)
p1 = &a
fmt.Println("p1的数值为:", p1)
fmt.Printf("p1的地址是:%p\n", &p1)
fmt.Prin
指针类型一 一个结构体变量的指针就是该变量所占据的内存段的起始地址(如结构体Student变量name的指针就是name这个变量所占据的内存段的起始地址,在定义结构体的时候已经为name分配好了内存空间)。可以设一个指针变量,用来指向一个结构体变量,此时该指针变量的值是结构体变量的起始地址(也就是说你可能有很多个变量,但是这些变量有一个其实地址,那么此时这个结构体指针变量指向的就是这个起始地址)。
结构体指针,可细分为指向结构体变量的指针和指向结构体数组的指针。指向结构体变量的指针 前面我们通过“结构体变量名.成员名”的方式引用结构体变量中的成员,除了这种方法之外还可以使用指针。前面讲过,&student1 表示结构体变量 student1 的首地址,即 student1 第一个项的地址。如果定义一个指针变量 p 指向这个地址的话,p 就可以指向结构体变量 student1 中的任意
转载
2023-07-19 07:26:50
170阅读
在代码执行的时候先执行.的操作,然后再执行*的操作。已经p.age取出具体的
原创
2023-08-12 08:44:36
115阅读
面向对象 1.go语言没有类,其结构体相当于类的作用; Name,Age属于字段/属性。 2.字段一般是基本数据类型、数组,也可以是引用类型; 3.在创建一个结构体变量后,如果没有赋值,都对应一个零值(默认值); 指针、slice、map的零值都是nil,即还没有分配空间; 使用map和slice一定要分配空间; 4.不同结构体变量的字段是独立,互不影响的,一个结构体变量字段的更改,不影响另外一个
转载
2023-11-03 07:48:28
50阅读
Go语言高并发与微服务实战 - 学习笔记 文章目录Go语言高并发与微服务实战 - 学习笔记第3章 Go语言基础3.6 结构体和方法3.6.4 结构体实现接口3.6.5 内嵌和组合 第3章 Go语言基础3.6 结构体和方法3.6.4 结构体实现接口Go语言的接口设计是非侵入式的。对于接口编写者来说,他无需关心接口是被什么类型实现的;对于接口实现者来说,他仅需知道实现的接口具备什么样的方法,而无需指定
转载
2023-09-01 08:40:12
62阅读
在学习数据结构线性表的时候,遇到了一些问题,像指针,结构体,typedef,形参实参等较为抽象的概念,以及它们之间的联系,在此整理记录一下。目录一、实参与形参(一)定义(二)二者的区别与联系:(三)易混点:形参和实参的三种传递方式:1-值传递2-址传递3-引用(重)(四)形参、实参的传递方式的区别: 二、结构体 (一)、定义结构体1.基础知识 2.结构体的嵌套3.结构
转载
2023-09-09 20:57:15
88阅读
一、指针类型介绍普通类型,变量存的就是值,也叫值类型。获取变量的地址,用&,比如:var a int ,获取a的地址:&a指针类型,变量存的是一个地址,这个地址存的才是值(指针存储的是一个地址)获取指针类型所指向的值,使用:,比如,var p int,使用 *p 获取p指向的值var a int = 5 5var p * int = &a 0xefefefef -->
函数是基本的代码块,用于执行一个任务。Go 语言最少有个 main() 函数。你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务。函数声明告诉了编译器函数的名称,返回类型,和参数。Go 语言标准库提供了多种可动用的内置的函数。例如,len() 函数可以接受不同类型参数并返回该类型的长度。如果我们传入的是字符串则返回字符串的长度,如果传入的是数组,则返回数组中包含的函数个数。函数定义 G
转载
2023-07-12 00:03:32
576阅读
说到指针,许多人感到“谈指针色变”,对指针偏移、指针运算、指针转换非常恐惧。其实,指针是C族语言(C/C++)极高性能的根本,在操作大块数据和做内存地址偏移时,方便快捷。C族语言(C/C++)中指针被诟病的原因是 指针的运算 和 内存释放。go中的指针分为两个重要方面:类型指针。类型指针拥有指针的高效访问:传递数据使用指针,而不是采用内存拷贝;使用类型指针修改(其指针地址)指向的普通变量值。类型指
转载
2023-08-18 18:16:28
36阅读
Go语言学习笔记-Go语言结构体Go语言结构体1. 结构体创建、访问与修改1.1 定义结构体1.2 声明和初始化结构体1.3 访问与修改结构体1.4 成员函数(方法)1.5 为自定义类型添加方法1.6 匿名结构体1.7 结构体中含有匿名成员2. 结构体指针2.1 创建结构体指针2.2 方法接收指针3. 结构体嵌套4. 深拷贝与浅拷贝 Go语言结构体1. 结构体创建、访问与修改1.1 定义结构体/
go的json序列化前言:go语言的json序列化与反序列化借助的go语言的数据结构是 结构体(python中借助的是字典)声明一个Movie结构体type Movie struct {
Title string
Year int `json:"released"`
Color bool `json:"color,omitempty"`
Actors []string
}一、序
转载
2023-08-26 12:32:17
30阅读