golang-结构体的使用
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-结构体的使用的更多相关文章
- golang 结构体中的匿名接口
golang 结构体中的匿名接口 代码示例 golang 中,可以给结构体增加匿名field,可参考 unknwon 大神的书. 匿名字段和内嵌结构体 但,golang同时也可以给结构体定义一个匿名i ...
- golang结构体json格式化的时间格式
golang结构体json格式化的时间格式 在我们开发中,经常会解析time.Time 往往前台传过来的时候,是个string 但是我们希望在结构体转成time.Time type Param str ...
- Golang结构体值的交换
Golang结构体值的交换 一.添加结构体,多if暴力 最先遇到这个问题是在比编写PUT方法的接口时遇到. (我公司编写http put方法,是先解析json至StudentInput结构体中,通过i ...
- GO开发[五]:golang结构体struct
Go结构体struct Go语言的结构体(struct)和其他语言的类(class)有同等的地位,但Go语言放弃了包括继承在内的大量面向对象特性,只保留了组合(composition)这个最基础的特性 ...
- golang结构体、接口、反射
struct结构体 struct用来自定义复杂数据结构,可以包含多个字段属性,可以嵌套; go中的struct类型理解为类,可以定义方法,和函数定义有些许区别; struct类型是值类型. struc ...
- golang结构体
声明结构体 定义结构体使用struct关键字.在结构体内部定义它们的成员变量和类型.如果成员变量的类型相同还可以把它们写到同一行. struct里面可以包含多个字段(属性) struct类型可以定义方 ...
- Golang结构体struct的使用(结构体嵌套, 匿名结构体等)
转自: https://studygolang.com/articles/11313 golang中是没有class的,但是有一个结构体struct,有点类似,他没有像java,c++中继承的概念,但 ...
- [Go] golang结构体成员与函数类型
package main import ( "fmt" ) //定义一个类型 type tsh struct { //定义成员,类型是func() string test func ...
- golang结构体排序 - 根据下载时间重命名本地文件
喜M拉Y下载音频到手机,使用ximalaya.exe 解密[.x2m]为[.m4a]根据文件下载创建时间,顺序重命名文件,方便后续播放. 源码如下:package main import ( &quo ...
- 【转】golang 结构体和方法
原文:https://www.jianshu.com/p/b6ae3f85c683 ---------------------------------------------------------- ...
随机推荐
- Python之TensorFlow的变量收集、自定义命令参数、矩阵运算、梯度下降-4
一.TensorFlow为什么要存在变量收集的过程,主要目的就是把训练过程中的数据,比如loss.权重.偏置等数据通过图形展示的方式呈现在开发者的眼前. 自定义参数:自定义参数,主要是通过Python ...
- 使用交叉验证法(Cross Validation)进行模型评估
scikit-learn中默认使用的交叉验证法是K折叠交叉验证法(K-fold cross validation):它将数据集拆分成k个部分,再用k个数据集对模型进行训练和评分. 1.K折叠交叉验证法 ...
- 进入恢复模式(Recovery HD)
进入恢复模式(Recovery HD) 1,选中要启动的虚拟机,随后点击VM菜单的启动按钮后面向下箭头,随后点击菜单项”打开电源时进入固件“. 2,在虚拟机里面,用上下键移动到”Enter setup ...
- windows下pyinstaller打包踩坑记录
示例: 需要打包的是 ReadConfig.py 文件,同文件夹下调用了Interface.py文件,ui文件夹下调用了 Ui_config.py和Ui_Error.py文件,Interface.py ...
- jdk安装以及Java环境配置
jdk其实自己大一的时候就已经装过,java环境也配置过,但是随着后面学习的东西越来越多,要安装的软件也越来越多,一开始没有安装路径的概念,好多东西都放的很乱.接着这次自己复习java的机会,于是重新 ...
- Git使用整理
[本文由水木桶首发于博客园,原文地址:https://www.cnblogs.com/shuimutong/p/11404664.html,未接允许,严禁转载] 背景 很久之前使用的是svn,直接在E ...
- MySQL Hardware--FIO压测
FIO参数 .txt 支持文件系统或者裸设备,-filename=/dev/sda2或-filename=/dev/sdb direct= 测试过程绕过机器自带的buffer,使测试结果更真实 rw= ...
- MySQL连接查询流程源码
http://blog.itpub.net/29510932/viewspace-2129300/ 初始化: 点击(此处)折叠或打开 main |-mysqld |-my_init // 初始话线程变 ...
- 听说你知道什么是锁 --JAVA
I.java中的锁 1.1 什么是锁 在计算机科学中,锁(lock)与互斥(mutex)是一种同步机制,用于在许多线程执行时对资源的限制. 锁通常需要硬件支持才可以有效实施.这种支持通常采用一 ...
- Kubernetes- Dashboard 部署
获取dashboard 的yaml文件 wget wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/dep ...