golang 自定义结构体(与其他语言对象类似)
1 /* 2 3 结构体变量: 4 结构体的定义只是一种内存布局的描述,只有当结构体实例化时,才会真正地分配内存, 5 因此必须在定义结构体并实例化后才能使用结构体的字段。 6 type 类型名 struct { 7 字段1 字段1类型 8 字段2 字段2类型 9 … 10 } 11 指针类型的结构体 :new 关键字对类型(包括结构体、整型、浮点数、字符串等)进行实例化,结构体在实例化后会形成指针类型的结构体 12 1 var o *类型名 = new(类型名) 13 2 o := &类型名{} 14 赋值 : 15 1 var o *类型名 = new(类型名){字段1:值} 16 2 o.字段1 = xxx 17 3 p := &struct {// 定义 18 name string 19 }{// 初始化 20 name:"lizi", 21 } 22 结构体方法: 23 1 每个方法只能有一个接收器(分: 非指针类型 和 指针类型 接收器) 24 2 非指针类型接收器: 当方法作用于非指针接收器时,Go语言会在代码运行时将接收器的值复制一份,在非指针接收器的方法中可以获取接收器的成员值,但修改后无效 25 3 指针类型接收器: 指针类型的接收器由一个结构体的指针组成,更接近于面向对象中的 this 或者 self 26 func (接收器变量 接收器类型) 方法名(参数列表) (返回参数) { 27 函数体 28 } 29 例: 30 type ObjectType struct{id int} 31 func (o *ObjectType) SetId(id) int{ 32 o.id = id 33 return id 34 } 35 o := new(ObjectType) 36 o.SetId(0) 37 结构内嵌特性: 38 1 内嵌的结构体可以直接访问其成员变量 39 2 内嵌结构体的字段名是它的类型名 40 类型内嵌 41 */ 42 package info_struct
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义