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语法相关推荐

  1. 数据结构与算法:02 C#语言基本语法结构

    02 C#语言基本语法结构 知识结构: 1.数据类型 第一种分类: 简单数据类型:byte.short.int.long.float.double.char.bool 组合数据类型:struct.en ...

  2. Go语言基础语法--注释、基础结构2

    章节 GO语言基础语法--注释.基础结构(重要) 1.GO语言基础语法---注释.基础结构 //程序所属的包,且必须在源文件代码第一行 package mainimport "fmt&quo ...

  3. C语言和C++语言在语法上面的部分区别

    (2011-03-16 17:12:13) 标签: 杂谈 分类:计算机 C语言和C++语言在语法上面的部分区别: 1.C语言的定义必须在最前面,C++可以在任何地方定义,比如 for(int i=0; ...

  4. Go语言基本语法 (下)

    原作者博客链接:[https://www.liwenzhou.com/][https://www.liwenzhou.com/] Golang 中文文档地址:https://studygolang.c ...

  5. C语言入门教程|| C语言 程序结构|| C语言 基本语法

    在我们学习 C 语言的基本构建块之前,让我们先来看看一个最小的 C 程序结构,在接下来的章节中可以以此作为参考. C 程序主要包括以下部分: 预处理器指令 函数 变量 语句 & 表达式 注释 ...

  6. Go语言 基础语法学习 (未完待更......

    文章目录 一 Go语言结构 1 Go Hello world实例 2 执行Go程序 二 Go语言基础语法 1 Go标记 2 行分隔符 3 注释 4 标识符 5 一些关键字 6 Go语言的空格 7 格式 ...

  7. GO 语言基础语法一 (快速入门 Go 语言)

    Go语言基础语法 一. golang 标识符,关键字,命名规则 二. golang 变量 三. golang 常量 四. golang 数据类型 五. golang 布尔类型 六. golang 数字 ...

  8. html嵌入式的脚本语言,Markdown语法及html内嵌

    之前看到很多大佬博客写的特别漂亮,非常羡慕,他们是怎么排版的呢?作为一个小白,学习使我快乐....终于在不断摸索中,找到方法.原来大佬们使用了一个新的语言--Markdown. 1.Markdown介 ...

  9. Go语言基础语法讲解与学习

    Go语言基础语法讲解与学习 1 Go语言基础知识介绍 ​ 介绍Go语言之前,我们先了解一下有哪些开源项目是Go语言开发的,其中就包括 Docker.Go-Ethereum.Thrraform 和 Ku ...

最新文章

  1. oracle refresh force,千万级表上的物化视图(force模式 ),手动刷新,为何速度奇慢?...
  2. DCMTK:OFStandard中base64代码的测试程序
  3. 求两个数的最小公约数和最小公倍数
  4. sed查找文件包含字段_sed(查找替换) 与awk(提取字段)
  5. Android已申请动态权限报错,Android 读取或者写入U盘时,报错:Permission denied
  6. Ant之build.xml详解
  7. 2018年全国卷Ⅰ卷理科数学图片版
  8. 谷歌正式宣布退出中国 关闭google.cn
  9. 2019全球数据新闻奖揭晓
  10. BlueCoat ProxySG Attack Detection功能
  11. Panda3D双面渲染和3D法线的概念学习
  12. flutter插件开发学习之旅(4)-------检测GPS状态,打开GPS和显示经纬度实战
  13. 高效人士的116个IT秘诀
  14. 面试官问你的职业生涯规划是什么,该如何回答?
  15. springboot集成knif4j,swagger
  16. 理解tfrecord读取数据——错误OutOfRangeError (see above for traceback)的解决
  17. 从位图图像中读取2D纹理(C ++,OpenGL)
  18. linux怎么安装echo命令,如何在Linux上使用Echo命令 | MOS86
  19. 记一次数据丢失(电脑硬盘closed to down)的经历
  20. Keras深度学习实战(38)——图像字幕生成

热门文章

  1. windows 10 常用快捷键
  2. iOS Storyboard创建APP 的国际化操作
  3. ASP.NET之.NET FrameWork框架
  4. redis集群安装和java应用
  5. IOS第八天(1:UITableViewController团购,数据转模型,xib显示数据)
  6. 比较不错的一个ios找茬游戏源码
  7. POJ 2151 Check the difficulty of problems (概率dp)
  8. AHOI2013 Round2 Day2 简要题解
  9. FirstApp,iphone开发学习总结7,相机
  10. 【Android 逆向】Android 进程代码注入原理 ( 进程注入原理 | 远程调用流程 | 获取函数地址 | 设置 IP 寄存器 | mmap 申请内存 | 设置 SP 寄存器 )