package main

import (
    "fmt"
)

type Person struct {
    name string
    sex byte
    age int
}

type Student struct {
    Person    //只有名字,没有字段,这里student相当于继承了person的所有字段,就有点像是继承了
    id int
    addr string
}

func main() {
    //来一个顺序初始化
    }, , "NJ"}
    fmt.Println("s1 = ", s1)
    //再来一个自动推导类型
    s2 := Student{Person{}, , "NJ"}
    fmt.Printf("s2 = %+v\n", s2) //这里是打印出详细的方式
    //上面是顺序自动推导,再来一个不一样的
    s3 := Student{Person:Person{name: }, id:}
    fmt.Printf("s3 = %+v\n", s3)
}

执行的结果

s1 =  {{baylor  }  NJ}
s2 = {Person:{name:baylor sex: age:} id: addr:NJ}
s3 = {Person:{name:baylor sex: age:} id: addr:}

一定要记住的是Person也是一个结构体,那么在通过匿名字段进行初始化的时候一定要指定Person,造成不要写成

s1 := Student{, , "NJ"}

====================华丽的分隔线 ====================

匿名函数成员的操作

package main

import (
    "fmt"
)

type Person struct {
    name string
    sex byte
    age int
}

type Student struct {
    Person    //只有名字,没有字段,这里student相当于继承了person的所有字段,就有点像是继承了
    id int
    addr string
}

func main() {
    }, , "NJ"}
    //进行一个取值
    fmt.Println("s1.name = ", s1.name)
    //进行赋值
    s1.name = "mike"
    s1.sex = 'm'
    s1.age =
    s1.id =
    s1.addr = "NJ"
    fmt.Println("s1 = ", s1)
    //进行匿名字段的赋值
    s1.Person = Person{}
    fmt.Println("s1 = ", s1)
}

执行的结果

s1.name =  baylor
s1 =  {{mike  }  NJ}
s1 =  {{yoyo  }  NJ}

[GO]匿名字段的更多相关文章

  1. 【Go入门教程4】struct类型(struct的匿名字段)

    struct Go语言中,也和C或者其他语言一样,我们可以声明新的类型,作为其它类型的属性或字段的容器.例如,我们可以创建一个自定义类型person代表一个人的实体.这个实体拥有属性:姓名和年龄.这样 ...

  2. go之匿名字段

    struct,定义的时候是字段名与其类型一一对应,实际上Go支持只提供类型,而不写字段名的方式,也就是匿名字段,也称为嵌入字段. 当匿名字段是一个struct的时候,那么这个struct所拥有的全部字 ...

  3. sql having 函数 按匿名字段作为条件进行查询

    今天写sql 遇到一个问题 SELECT a.*, count(b.id) AS nums FROM a LEFT JOIN b ON a.id=b.a_id WHERE nums>1 这时候会 ...

  4. 【Go入门教程6】struct类型(struct的匿名字段)

    struct Go语言中,也和C或者其他语言一样,我们可以声明新的类型,作为其它类型的属性或字段的容器.例如,我们可以创建一个自定义类型person代表一个人的实体.这个实体拥有属性:姓名和年龄.这样 ...

  5. go语言之进阶篇结构体指针类型匿名字段

    1.结构体指针类型匿名字段 示例: package main import "fmt" type Person struct { name string //名字 sex byte ...

  6. go语言之进阶篇非结构体匿名字段

    1.非结构体匿名字段 示例 : package main import "fmt" type mystr string //自定义类型,给一个类型改名 type Person st ...

  7. [GO]非结构体匿名字段

    package main import ( "fmt" ) type mystr string //给一个类型重命名 type Person struct { name strin ...

  8. GO学习笔记:struct的匿名字段

    我们上面介绍了如何定义一个struct,定义的时候是字段名与其类型一一对应,实际上Go支持只提供类型,而不写字段名的方式,也就是匿名字段,也称为嵌入字段. 当匿名字段是一个struct的时候,那么这个 ...

  9. go结构体继承组合和匿名字段

    1.结构体方法 go不是纯粹的面向对象的,在go里面函数是一等公民,但是go也有结构体实现类似java一样类的功能来提供抽象.结构体的方法分为值方法和指针方法,前者在方法中做的改变不会改变调用的实例对 ...

随机推荐

  1. python 将html实体转回去

    参考资料: http://www.360doc.com/content/17/0620/16/44530822_664927373.shtml https://blog.csdn.net/guzhou ...

  2. 缓存varnish的管理及配置详解

    一 工作原理 在当前主流的Web服务架构体系中,Cache担任着越来越重要的作用.常见的基于浏览器的C/S架构,Web Cache更是节约服务器资源的关键.而最近几年由FreeBSD创始人之一Kamp ...

  3. ArraySort--冒泡排序、选择排序、插入排序工具类demo

    public class ArraySort { private long[] a; private int nElems; public ArraySort(int max){ a=new long ...

  4. linux编辑器使用记录

    超强大vim配置文件: wget  http://files.cnblogs.com/ma6174/vimrc.zip unzip  -f  vimrc.zip  -d  ~/ 一.vim编辑器 进入 ...

  5. CDN之多边缘节点负载均衡--学习笔记

    一.剧情 剧情是这样的,本次的多边缘节点负载均衡实验,1个LVS四层负载均衡集群和1个Nginx为反向代理的七层负载均衡集群,由Bind dns解析作为 主负载均衡服务器,调度两个集群,中间层有一台W ...

  6. maven项目将web2.5改为web3.1

    用maven构建的web项目默认的web.xml为2.3的版本,而我们需要更改为我们想要的版本(3.1). 在这里有两种方式更改web.xml的版本: 第一种: 将项目切换为navigator视图,然 ...

  7. 基于七牛Python SDK写的一个批量下载脚本

    前言 上一篇基于七牛Python SDK写的一个同步脚本所写的脚本只支持上传,不支持文件下载. 虽然这个需求不太强烈,但有可能有人(在备份.迁移时)需要,而官方有没提供对应的工具,所以我就把这个功能也 ...

  8. RHCE7-学习里程 root 密码重置换

    一.root 密码重置换 当忘记root 密码后,可以按照以下方法重置 root 密码 1.重启动电脑,出现如下界面,按  上  下 键盘, 选择   (core)--再按e 2.在下图linux16 ...

  9. php yii 学习笔记

    yii 归档安装 1,下载 yii  Yii2的高级应用程序模板 2,解压模板到目录,进入控制台进入目录 运行 php init 安装YII 3,进入 http://localhost/phpmyad ...

  10. /etc/rc5.d/s991local: line25: eject:command not found错误

      使用虚拟机安装centos出现错误,原因是我使用的镜像是最小级别的,没有图形化界面,只有终端窗口 有人用vmware安装minimal centos报错/etc/rc5.d/s99local : ...