package main

import (
"fmt"
"unsafe"
) type Person struct {
name string
sex byte
age int
} type Student struct {
p []Person
id []int
score []int
} func test(man Person) {
fmt.Println("test temp size:", unsafe.Sizeof(man)) man.name = "name1"
man.age = fmt.Println("test: man", man)
} func main() {
// 1. 顺序初始化, 必须全部初始化完整
var man Person = Person{"andy", 'm', }
fmt.Println("man:", man) // 2. 部分初始化
man2 := Person{sex:'f', age:}
fmt.Println("man2:", man2)
// 索引成员变量 “.”
fmt.Printf("man2.name = %q\n", man2.name) var man3 Person
man3.name = "mike"
man3.sex = 'm'
man3.age =
fmt.Println("man3:", man3)
man3.age =
fmt.Println("man3:", man3) // 结构体比较
var p1 Person = Person{"andy", 'm', }
var p2 Person = Person{"andy", 'm', }
var p3 Person = Person{"andy", 'm', } fmt.Println("p1 == p2 ?", p1 == p2)
fmt.Println("p1 == p3 ?", p1 == p3) // 相同类型结构体赋值
var tmp Person
fmt.Println("tmp", tmp)
tmp = p3
fmt.Println("tmp", tmp) // 函数内部使用结构体传参
var temp Person
fmt.Println("main temp size:", unsafe.Sizeof(temp))
test(temp) // 值传递。将实参的值拷贝一份给形参。
fmt.Println("temp", temp) fmt.Printf("&tmp = %p\n", &temp)
fmt.Printf("&temp.name = %p\n", &(temp.name)) fmt.Println("main temp size:", unsafe.Sizeof(true)) // 1 /0
}

golang-结构体的使用的更多相关文章

  1. golang 结构体中的匿名接口

    golang 结构体中的匿名接口 代码示例 golang 中,可以给结构体增加匿名field,可参考 unknwon 大神的书. 匿名字段和内嵌结构体 但,golang同时也可以给结构体定义一个匿名i ...

  2. golang结构体json格式化的时间格式

    golang结构体json格式化的时间格式 在我们开发中,经常会解析time.Time 往往前台传过来的时候,是个string 但是我们希望在结构体转成time.Time type Param str ...

  3. Golang结构体值的交换

    Golang结构体值的交换 一.添加结构体,多if暴力 最先遇到这个问题是在比编写PUT方法的接口时遇到. (我公司编写http put方法,是先解析json至StudentInput结构体中,通过i ...

  4. GO开发[五]:golang结构体struct

    Go结构体struct Go语言的结构体(struct)和其他语言的类(class)有同等的地位,但Go语言放弃了包括继承在内的大量面向对象特性,只保留了组合(composition)这个最基础的特性 ...

  5. golang结构体、接口、反射

    struct结构体 struct用来自定义复杂数据结构,可以包含多个字段属性,可以嵌套; go中的struct类型理解为类,可以定义方法,和函数定义有些许区别; struct类型是值类型. struc ...

  6. golang结构体

    声明结构体 定义结构体使用struct关键字.在结构体内部定义它们的成员变量和类型.如果成员变量的类型相同还可以把它们写到同一行. struct里面可以包含多个字段(属性) struct类型可以定义方 ...

  7. Golang结构体struct的使用(结构体嵌套, 匿名结构体等)

    转自: https://studygolang.com/articles/11313 golang中是没有class的,但是有一个结构体struct,有点类似,他没有像java,c++中继承的概念,但 ...

  8. [Go] golang结构体成员与函数类型

    package main import ( "fmt" ) //定义一个类型 type tsh struct { //定义成员,类型是func() string test func ...

  9. golang结构体排序 - 根据下载时间重命名本地文件

    喜M拉Y下载音频到手机,使用ximalaya.exe 解密[.x2m]为[.m4a]根据文件下载创建时间,顺序重命名文件,方便后续播放. 源码如下:package main import ( &quo ...

  10. 【转】golang 结构体和方法

    原文:https://www.jianshu.com/p/b6ae3f85c683 ---------------------------------------------------------- ...

随机推荐

  1. iframe 边框(界面技术)

    一.iframe 的边框很难看,想去掉,使用CSS的border:none在IE(8)上没有,只能用iframe 自带属性frameBorder="0"来设置. 二.iframe与 ...

  2. php生成一维码以及保存-转载

    地址:http://www.cnblogs.com/ForEvErNoME/archive/2012/04/21/2460944.html 注释掉: //header('Content-Type: i ...

  3. Jmeter学习笔记(十六)——HTTP请求之content-type

    一.HTTP请求Content-Type 常见的媒体格式类型如下: text/html : HTML格式 text/plain :纯文本格式 text/xml : XML格式 image/gif :g ...

  4. hadoop2.8 集群 1 (伪分布式搭建)

    简介: 关于完整分布式请参考: hadoop2.8 ha 集群搭建   [七台机器的集群] Hadoop:(hadoop2.8) Hadoop是一个由Apache基金会所开发的分布式系统基础架构.用户 ...

  5. PowerDesigner 连接数据库,更新数据库;

    首先:以管理员身份运行Powerdesigner 一.连接服务器的某个数据库: 点击新建数据源图标 选择数据源类型:用户数据源:这里说是只用于当前机器,实际局域网里的都可以. Successfully ...

  6. scrapy 用pycharm调试

    1. 用pycharm打开scrapy项目,随便右击一个.py文件,选择Debug "***" 2. pycharm 右上角点击刚才debug的文件,选择Edit Configur ...

  7. 【Java】锁机制

    参考 https://blog.csdn.net/varyall/article/details/79698145 <深入理解Java虚拟机> 锁状态:无锁.偏向锁.轻量级锁.重量级锁(具 ...

  8. 02- web-mini框架添加路由、MySQL(二)

    本篇在上篇的基础上为其增设路由功能,同时将上篇中的数据库中数据备份添加进去. 一.装饰器 在之前有介绍过为一个函数不改变源代码不改变原函数的调用方式下为其增设附加功能,需要用到装饰器,而在该上篇的we ...

  9. 【DRF框架】认证组件

    DRF框架的认证组件 核心代码:       self.perform_authentication(request)  框架自带模块:    from rest_framework import a ...

  10. Linux命令——getconf

    转自:灵活使用getconf命令来获取系统信息 简介 getconf本身是个ELF可执行文件,用于获取系统信息 用法 getconf -a可以获取全部系统信息 对于这个命令,记住几个常用的信息获取方法 ...