当前位置: 首页 > news >正文

go 结构体

  1. 定义结构体
package mainimport "fmt"type Person struct {age, id     intname, email string
}func main() {var p Personfmt.Printf("p: %v\n", p)p.age = 100p.name = "jaja"fmt.Printf("p.name: %v\n", p.name)// 匿名结构体var Pp struct {age, id     intname, email string}Pp.age = 100fmt.Printf("Pp.age: %v\n", Pp.age)
}
  1. 结构体初始化

未被初始化的结构体string类型默认为nil,int类型默认为0,bool类型默认为false

package mainimport "fmt"type Person struct {age, id     intname, email string
}func main() {var p Personfmt.Printf("p: %v\n", p)fmt.Printf("p.name: %v\n", p.name)// 使用键值对初始化p = Person{name: "haha"}fmt.Printf("p.name: %v\n", p.name)//使用顺序初始化,所有的键必须赋值p = Person{1, 1, "haha", "haha"}fmt.Printf("p: %v\n", p)
}
  1. 结构体指针
package mainimport "fmt"type Person struct {name, email string
}func main() {var p_person Person = Person{name:  "tom",email: "tom@qq.com",}var p *Personp = &p_personfmt.Printf("p: %v\n", p)fmt.Printf("p.name: %v\n", p.name)p.email = "haha"fmt.Printf("p_person: %v\n", p_person)fmt.Printf("p: %v\n", p)}
、、使用new关键字创建一个指针
package mainimport "fmt"type Person struct {name, email string
}func main() {p_person := new(Person)p_person.email = "haha"fmt.Printf("p_person: %v\n", p_person)}
  1. 结构体当成函数参数
package mainimport "fmt"type Person struct {name, email string
}//值传递结构体
func showInfo(person Person) {person.email = "dalian@qq.com"person.name = "dalian"fmt.Printf("person: %v\n", person)
}func structShow(person *Person) {person.email = "dalian@qq.com"person.name = "dalian"fmt.Printf("person: %v\n", person)
}func main() {var p_person Person = Person{name:  "tom",email: "tom@qq.com",}fmt.Printf("p_person: %v\n", p_person)showInfo(p_person)fmt.Printf("p_person: %v\n", p_person)structShow(&p_person)fmt.Printf("p_person: %v\n", p_person)}
http://www.lryc.cn/news/135145.html

相关文章:

  • C++学习笔记---- 引用
  • 2023国赛数学建模思路 - 案例:感知机原理剖析及实现
  • Cesium加载Supermap的wmts服务
  • C/C++:C/C++在大数据时代的应用,以及C/C++程序员未来的发展路线
  • linux RabbitMQ-3.8.5 安装
  • 单链表Single-LinkList
  • AI嵌入式全景:各厂商、系列和开发工具的综合概览
  • mysql Left Join on条件 where条件的用法区别
  • Redis中的淘汰策略
  • MyBatis进阶:掌握MyBatis动态SQL与模糊查询、结果映射,让你在面试中脱颖而出!!
  • C++ 写入txt文件内容并追加内容
  • Leetcode---359周赛
  • Keras三种主流模型构建方式:序列模型、函数模型、子类模型开发实践,以真实烟雾识别场景数据为例
  • objective-v 获取iPhone系统当前时间字符串适配12小时制和24小时制
  • 并查集及其简单应用
  • 基于web的服装商城系统java网上购物商店jsp源代码mysql
  • .NET Core发布到IIS
  • Spring的基本概念
  • 设计模式之原型模式
  • 正则表达式在网页处理中的应用四则
  • ping使用方法
  • “心理健康人工智能产学研创新联盟”揭牌成立|深兰科技
  • FastDFS+Nginx - 本地搭建文件服务器同时实现在外远程访问「端口映射」
  • Mybatis-动态sql和分页
  • 基于YOLOV8模型的西红柿目标检测系统(PyTorch+Pyside6+YOLOv8模型)
  • 数学建模及数据分析 || 4. 深度学习应用案例分享
  • 数据分析15——office中的Excel基础技术汇总
  • C语言好题解析(四)
  • 英语——主谓一致
  • 属性字符串解析