—— 每个可执行的应用程序必须包含一个主函数,它是执行的入口点。主函数应该存在main包中。


结构体: 通过 操作符访问结构体的各个成员!

1. 定义结构体类型person:

type person struct{ name stringage    int
}

使用结构体类型定义结构体变量:

  P := person{ "星星",  22 }                 //按顺序初始化

  P := person{ age:22,  name:"星星" }   //使用键值对方式,顺序可以任意

  P := new(person);  P.age = 22;  P.name = "星星"    //new方式,未设置初始值时采用默认初始值

2. 结构体指针: 存储结构体变量的地址,也可以通过 . 操作符访问结构体变量的各个成员

  var pointer_name *person

3. 匿名字段(类似继承): 不仅仅可以是结构体类型哦,所有的内置类型和自定义类型都可以作为匿名字段。

 type Human struct {name stringage intweight float32
}​
type Student struct {Human                    // 匿名字段,代表Student包含Human的所有字段/成员special string
}
此时对Student实例化: mark := Student{Human{"Mark", 22, 100.0}, "Computer Science"}
注意:可以使用.调用所有属性值(包括匿名字段中的属性),
也可以mark.Human = Huamn{"Mark", 22, 100};    mark.Human.age = 0              

4. 结构体嵌套

type Address struct {city, state string
}
type Person struct {name stringage intaddress Address         //结构体类型变量作另一个结构体的成员
}  ​
func main() {var p Personp.name = "Naveen"p.age = 50p.address = Address {city: "Chicago",state: "Illinois",}fmt.Println("Name: ", p.name)fmt.Println("City: ", p.address.city)}

5. 导出结构体和导出字段:

如果结构体类型以大写字母开头,那么它就是一个导出类型,可以从其它包中对它进行访问;类似,如果结构体中的字段以大写字母开头,也可以在其它包中访问它们。

在computer目录下,创建文件spec.go                   

package computer
type Spec struct {       //exported structMaker string        //exported fieldmodel string        //unexported fieldPrice int
}

创建main.go 文件

import "../structs/computer"     //或 import "./computer"或者 import "根目录"
import "fmt"
func main() {var spec computer.Specspec.Maker = "apple"spec.Price = 50000fmt.Println("Spec:", spec)
}

                  目录结构如下:
                                  src
                                        structs
                                                  computer
                                                          spec.go
                                                  main.go

6.
结构体的比较:

   结构体是值类型,如果每个字段都具有可比性,则结构体就是可比较的

   如果两个结构体变量对应字段的值都是相等的,则它们就是相等的!

转载于:https://www.cnblogs.com/skzxc/p/11244377.html

Go语言学习笔记(8)——包和结构体相关推荐

  1. go struct 静态函数_Go语言学习笔记(四)结构体struct 接口Interface 反射reflect...

    加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ...

  2. C语言学习笔记---向函数传递结构信息

    传递值   在向函数传递参数的时候,可以直接将结构体成员的值传递给函数.如下面的例子: int sum(int x,int y,int z) {return (x + y + z); }int mai ...

  3. Go 学习笔记(14)— 结构体定义、实例化、初始化、匿名结构体、结构体访问、结构体作为形参、结构体指针

    Go 语言中没有 "类" 的概念,也不支持 "类" 的继承等面向对象的概念.Go 语言不仅认为结构体能拥有方法,且每种自定义类型也可以拥有自己的方法. 1. 结 ...

  4. 【ESP32S3学习笔记】LVGL相关结构体学习——lv_disp_drv_t

    LVGL相关结构体学习--lv_disp_drv_t 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后, ...

  5. 30天自制OS学习笔记 (五)结构体、文字显示与GDT/IDT 初始化

    1.接收启动信息 & 2.试用结构体 & 3.试用箭头符号 在第五天之前,我们都是把vram.xsize.ysize这些值直接写在了bootpack.c文件中.而这些值应从asmhea ...

  6. swift学习笔记(9)-结构体和类

    结构体和类对比 Swift 中类和结构体有很多共同点.共同处在于: * 定义属性用于存储值 * 定义方法用于提供功能 * 定义下标操作使得可以通过下标语法来访问实例所包含的值 * 定义构造器用于生成初 ...

  7. IOS 学习笔记 2015-03-24 OC-API-常用结构体

    一 标题 常用结构体二 API 1 NSRange 表示一个范围 A 实例化 NSRange rg={3,5};//第一参数是起始位置第二个参数是长度B 实例化 NSRange rg2=NSMakeR ...

  8. C语言学习(九)之结构体

    文章目录 一.结构体基础 1.1 什么是结构体 1.2 建立结构声明 1.3 定义结构变量 1.4 初始化结构 1.5 访问结构成员 1.6 结构的初始化器 二.结构数组 2.1 声明结构数组 三.嵌 ...

  9. go语言学习(3)面向对象,结构体和方法

    感觉每种语言都是其他的语言的一些交集,看见go就有种kotlin和C的孩子的感觉,虽然我并不清楚他们之间的借鉴关系 go语言仅支持封装,不支持继承和多态 go语言只有struct没有class go语 ...

  10. 《Go语言圣经》学习笔记 第二章 程序结构

    Go语言圣经学习笔记 第二章 程序结构 目录 命名 声明 变量 赋值 类型 包和文件 作用域 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. Go语言小白学习笔记,几乎是书上的内 ...

最新文章

  1. Jack Dongarra/杰克 多加拉
  2. 惊呆!不用一张图片,却训出个图像识别SOTA?
  3. html 多个mp3,HTML5 audio 如何实现播放多个MP3音频
  4. Python的permutations和combinations的区别
  5. 【三维路径规划】基于matlab人工势场算法无人机三维路径规划【含Matlab源码 168期】
  6. 微软Windows Hello曝漏洞!外接一个USB摄像头,分分钟破解你的电脑
  7. excel熵值法计算权重_手把手教你用熵值法计算权重
  8. python 期末考试复习题(带答案)
  9. RAID磁盘冗余技术
  10. 使用搜索引擎搜索指定网站的内容
  11. 京东小程序开放平台,他来了
  12. 全像素双核激光对焦拍照是个什么厉害玩意儿
  13. 异常:Incorrect result size: expected 1, actual 0
  14. case zhen语句_SQL中的条件判断语句(case when zhen if,ifnull)用法
  15. TroubleShooting_配置正确的WAU
  16. Opencv每日函数 图像分割模块 watershed分水岭算法
  17. RS485总线的抗干扰处理
  18. php yii2支付宝开发,网站支付宝支付原理及yii2中集成使用教程分享
  19. source insight php-styles.cf3,【转】SourceInsight 中集成Artistic Style 格式化代码
  20. DQ坐标系下的PQ值计算

热门文章

  1. MySQL服务器停机迁移
  2. InnoDB存储引擎MVCC的工作原理
  3. saltstack安装使用
  4. Android 编程下 ListView 和 CheckBox 混合使用时的常见问题
  5. ExtJS-3.4.0系列目录
  6. 网管必须熟悉的几个网络DOS命令
  7. pojo vo bo dto javabean
  8. 太强了,终于彻底搞懂 Nginx 的五大应用场景~
  9. 如何写一手好 SQL!!!
  10. 杭州29岁IT男凌晨突发脑出血!老父亲面对医生急的差点跪下