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. 上传图片demo

    页面: js: 后台: @RequiresPermissions("pointwall:upload:edit") @RequestMapping(value = "sa ...

  2. 强大的NCBI接口

    刚才小玩了下,不错,.net确实很方便,很强大 Using Entrez Utilities Web Service with C# and MS Visual Studio 2005 Updated ...

  3. BFC以及margin的深入探究

    BFC(Block Formatting Context) 块级格式化上下文,它是指一个独立的块级渲染区域,只有block-level Box参与,该区域拥有一套渲染规则来约束块级盒子的布局,且与区域 ...

  4. Ceph在OpenStack中的地位

    对Ceph在OpenStack中的价值进行简要介绍,并且对Ceph和Swift进行对比. 对于一个IaaS系统,涉及到存储的部分主要是块存储服务模块.对象存储服务模块.镜像管理模块和计算服务模块.具体 ...

  5. python‘s second day for me

    in     not in 主要用来检测一些字符串是否存在,或者避免一些字符串 while True: comment = input('请输入你的评论') if '顾清秋' in comment: ...

  6. php.ini文件中的include_path设置

    下面以安装smarty为例: 下面内容中,我们都是假设你的文件放在了D:\Appserv\www\Smarty下. 1.找到你的php.ini配置文件修改php.ini的include_path选项, ...

  7. sort_region——对区域进行排序

    The operator sort_region sorts the regions with respect to their relative position. All sorting meth ...

  8. IP流量重放与pcap文件格式解析

    (作者:燕云   出处:http://www.cnblogs.com/SwordTao/ 欢迎转载,但也请保留这段声明,谢谢!)   君不见 黄河之水 天上来 奔流到海不复回   君不见 高堂明镜 悲 ...

  9. 基于 DirectX11 的 MMDViewer 02-创建一个窗口

    项目的创建和配置: 1.新建一个 Win32 空项目 2.创建源码文件夹.库文件夹和资源文件夹 3.在 VS2013(我使用的 IDE 是 vs2013)配置这些文件夹 这里使用了 $(Solutio ...

  10. MyBatis 学习记录1 一个简单的demo

    主题 最近(N个月前)clone了mybatis的源码..感觉相比于spring真的非常小...然后看了看代码觉得写得很精简...感觉我的写代码思路和这个框架比较相似(很难具体描述...就是相对来说比 ...