首页 > 其他分享 >Go 结构体

Go 结构体

时间:2023-03-13 15:56:48浏览次数:28  
标签:city p1 string fmt Println address Go 结构

1. type关键字

  • 定义类型别名
type myInt = int
var a myInt = 1
var b int = 2
fmt.Println(a + b)
  • 类型定义

  • 定义接口

  • 定义结构体

  • 类型判断

2. 结构体

  • 定义结构体
type person struct {
   name    string
   age     int
   address string
   height  float32
}
  • 赋值
func main() {
   // 赋值方式1
   p1 := person{"tom", 18, "go", 1.80}
   p1.name = "boby" 
   // 复制方式2
   p2 := person{name: "tom", age: 18, address: "go", height: 1.80}
}
  • 取值
fmt.Println(p1.name)
fmt.Println(p2.name)

2.匿名结构体

func main() {
	address := struct {
		province string
		city     string
		address  string
	}{
		"省份",
		"城市",
		"地址",
	}
	fmt.Println(address.city)
}

3.结构体嵌套

  • 定义
type myAddress struct {
   province string
   city     string
   address  string
}
type person struct {
   name    string
   age     int
   address myAddress
   height  float32
}
  • 赋值
func main() {
   p1 := person{
      name: "tom",
      age:  18,
      address: myAddress{
         province: "省份",
         city:     "城市",
         address:  "地址",
      },
      height: 1.80,
   }
   p1.address.city = "城市1"
   fmt.Println(p1)
}
  • 取值
fmt.Println(p1.address.city)

4. 结构体方法

// 结构体
type myAddress struct {
   province string
   city     string
   address  string
}

// 附在结构体上的方法,(方法名之前的括号)
func (ma myAddress) myPrint() {
   fmt.Println(ma.province, ma.city, ma.address)
}

func main() {
   my := myAddress{"省份", "城市", "地址"}
   my.myPrint()
}

标签:city,p1,string,fmt,Println,address,Go,结构
From: https://www.cnblogs.com/forlive/p/17211706.html

相关文章

  • (转)golang goquery selector(选择器) 示例大全
    原文:https://juejin.cn/post/6844903552867893255最近研究Go爬虫相关的知识,使用到goquery这个库比较多,尤其是对爬取到的HTML进行选择和查找匹配的内容时,goquery的选择器......
  • (转)goquery HTML解析
    原文:https://www.jiangguo.net/c/447/pd9.htmlgoquery将jQuery的语法和特性引入进来,所以可以更灵活地选择采集内容的数据项,就像jQuery那样的方式来操作DOM文档,使用起来非......
  • goroutine调度机制(GMP模型)
    进程、线程和协程进程是操作系统分配资源的最小单元,是一个具有一定独立功能的程序关于某个数据集合上的一次运行活动线程是操作系统调度的最小单元,是进程的一个执行单元......
  • mysql查询所有表+表结构
    selecttable_nametableName,engine,table_commenttableComment,table_collationtableCollation,create_timecreateTimefrominformation_schem......
  • MongoDB
    什么是MongoDBMongoDB是一个基于分布式文件存储的开源NoSQL数据库系统,由C++编写的。MongoDB提供了面向文档的存储方式,操作起来比较简单和容易,支持“无模式”的......
  • go .a
    https://blog.csdn.net/huha666/article/details/121305696 https://blog.csdn.net/cooper_1/article/details/103637741 ......
  • golang示例项目 客户信息关系系统
    1.需求分析1)模拟实现基于文本界面的《客户信息管理软件》2)该软件能够实现对客户对象的插入、修改和删除(用切片实现),并能够打印客户明细表2.项目界面设计1)主菜单页面---......
  • 使用Argocd UI发布Guestbook
    1.ArgoCD核心概念Application:应用,一组由资源清单定义的Kubernetes资源,这是一个CRD资源对象Applicationsourcetype:用来构建应用的工具Targetstate:目标状态,指应用......
  • django使用qq的smtp邮箱服务器,作为第三方发送邮件
    1.qq邮箱设置中,开启pop3/smtp服务2.生成授权码(先复制下来)3.django配置#以下是邮箱配置项EMAIL_BACKEND='django.core.mail.backends.smtp.EmailBackend'EMAIL_HO......
  • 2_Tomcat结构介绍
    Tomcat目录结构与介绍 binbin目录主要是用来存放tomcat的命令文件,主要有两大类,一类是以.sh结尾的(linux命令),另一类是以.bat结尾的(windows命令)。conf   conf目......