GO语言struct语法
struct
-使用type<Name>struct{}定义结构,名称遵循可见性规则
-支持指向自身的指针类型成员
-支持匿名结构、可作用成员或定义成员变量
-匿名结构也可以用于MAP的值
-可以使用字面值对结构进行初始化
-允许值通过指针来读写结构成员
-相同类型的成员可进行直接拷贝赋值
-支持==与!=比较运算符,不支持>或<
-支持匿名字段,本质上是定义了以某个类型名称的字段
-嵌入结构作为匿名字段看起来像继承、但不是继承
-可以使用匿名字段的指针
package main
import "fmt"
type test struct{}
func main(){
a :=test{}
fmt.Println(a)
}
package main
import "fmt"
type test struct {
Name string
Age int
Address string
}
func main() {
a := test{}
a.Name = "YH" //值初始化,与其他语言的class类似,GO语言没有指针运算,
a.Age = 18
fmt.Printf("我叫%s, 今年年方%d\n", a.Name, a.Age)
b := test{
Name: "YH",
Age: 19,
Address: "Japan",
}
fmt.Printf("我叫%s, 今年年方%d,我是%s\n人", b.Name, b.Age, b.Address)
}
//匿名结构
package main
import "fmt"
type test struct {
Name string
Age int
Address string
Contact struct {
User_phont string
City string
}
}
func main() {
a := test{Name: "yh", Age: 19, Address: "Bj"}
a.Contact.User_phont = "1234567890"
a.Contact.City = "haidian"
fmt.Println(a)
}
package main
import "fmt"
func main() {
a := struct {
Name string
Age int
}{
Name: "aa",
Age: 19,
}
fmt.Println(a)
}
package main
import "fmt"
type test struct{
Name string
Age int
}
func main(){
a :=test{
Name:"coolqi", //设置字面值初始化
}
a.Age=19//
fmt.Println(a)
}
package main
import "fmt"
type humen struct{
Sex int
}
type Teacher struct{
humen
Name string
Age int
}
type Student struct{
humen //这里的嵌入式是一个匿名的字段,本质上是将结构的名称作为字段名称,若需要作为字面值初始化,需要做humen:humen{Sex:1}
Name string
Age int
}
func main(){
a :=Teacher{Name:"joe",Age:19,humen:humen{Sex:1}}//在嵌入式结构中,
fmt.Println(a)
}
转载于:https://blog.51cto.com/dbaspace/1963454
GO语言struct语法相关推荐
- 数据结构与算法:02 C#语言基本语法结构
02 C#语言基本语法结构 知识结构: 1.数据类型 第一种分类: 简单数据类型:byte.short.int.long.float.double.char.bool 组合数据类型:struct.en ...
- Go语言基础语法--注释、基础结构2
章节 GO语言基础语法--注释.基础结构(重要) 1.GO语言基础语法---注释.基础结构 //程序所属的包,且必须在源文件代码第一行 package mainimport "fmt&quo ...
- C语言和C++语言在语法上面的部分区别
(2011-03-16 17:12:13) 标签: 杂谈 分类:计算机 C语言和C++语言在语法上面的部分区别: 1.C语言的定义必须在最前面,C++可以在任何地方定义,比如 for(int i=0; ...
- Go语言基本语法 (下)
原作者博客链接:[https://www.liwenzhou.com/][https://www.liwenzhou.com/] Golang 中文文档地址:https://studygolang.c ...
- C语言入门教程|| C语言 程序结构|| C语言 基本语法
在我们学习 C 语言的基本构建块之前,让我们先来看看一个最小的 C 程序结构,在接下来的章节中可以以此作为参考. C 程序主要包括以下部分: 预处理器指令 函数 变量 语句 & 表达式 注释 ...
- Go语言 基础语法学习 (未完待更......
文章目录 一 Go语言结构 1 Go Hello world实例 2 执行Go程序 二 Go语言基础语法 1 Go标记 2 行分隔符 3 注释 4 标识符 5 一些关键字 6 Go语言的空格 7 格式 ...
- GO 语言基础语法一 (快速入门 Go 语言)
Go语言基础语法 一. golang 标识符,关键字,命名规则 二. golang 变量 三. golang 常量 四. golang 数据类型 五. golang 布尔类型 六. golang 数字 ...
- html嵌入式的脚本语言,Markdown语法及html内嵌
之前看到很多大佬博客写的特别漂亮,非常羡慕,他们是怎么排版的呢?作为一个小白,学习使我快乐....终于在不断摸索中,找到方法.原来大佬们使用了一个新的语言--Markdown. 1.Markdown介 ...
- Go语言基础语法讲解与学习
Go语言基础语法讲解与学习 1 Go语言基础知识介绍 介绍Go语言之前,我们先了解一下有哪些开源项目是Go语言开发的,其中就包括 Docker.Go-Ethereum.Thrraform 和 Ku ...
最新文章
- oracle refresh force,千万级表上的物化视图(force模式 ),手动刷新,为何速度奇慢?...
- DCMTK:OFStandard中base64代码的测试程序
- 求两个数的最小公约数和最小公倍数
- sed查找文件包含字段_sed(查找替换) 与awk(提取字段)
- Android已申请动态权限报错,Android 读取或者写入U盘时,报错:Permission denied
- Ant之build.xml详解
- 2018年全国卷Ⅰ卷理科数学图片版
- 谷歌正式宣布退出中国 关闭google.cn
- 2019全球数据新闻奖揭晓
- BlueCoat ProxySG Attack Detection功能
- Panda3D双面渲染和3D法线的概念学习
- flutter插件开发学习之旅(4)-------检测GPS状态,打开GPS和显示经纬度实战
- 高效人士的116个IT秘诀
- 面试官问你的职业生涯规划是什么,该如何回答?
- springboot集成knif4j,swagger
- 理解tfrecord读取数据——错误OutOfRangeError (see above for traceback)的解决
- 从位图图像中读取2D纹理(C ++,OpenGL)
- linux怎么安装echo命令,如何在Linux上使用Echo命令 | MOS86
- 记一次数据丢失(电脑硬盘closed to down)的经历
- Keras深度学习实战(38)——图像字幕生成
热门文章
- windows 10 常用快捷键
- iOS Storyboard创建APP 的国际化操作
- ASP.NET之.NET FrameWork框架
- redis集群安装和java应用
- IOS第八天(1:UITableViewController团购,数据转模型,xib显示数据)
- 比较不错的一个ios找茬游戏源码
- POJ 2151 Check the difficulty of problems (概率dp)
- AHOI2013 Round2 Day2 简要题解
- FirstApp,iphone开发学习总结7,相机
- 【Android 逆向】Android 进程代码注入原理 ( 进程注入原理 | 远程调用流程 | 获取函数地址 | 设置 IP 寄存器 | mmap 申请内存 | 设置 SP 寄存器 )