go语言中结构struct
package main; import "fmt" //结构struct //定义Person结构
type Person struct {
name string;
age int;
}; //结构里面还有一个匿名结构
type Person2 struct {
name string;
age int;
contact struct {
phone string;
addr string;
}
} //结构里的匿名字段
type Person3 struct {
string;
int;
} //嵌入结构,组合
type Person4 struct {
Person;
phone string;
addr string;
} func main() {
a := Person{};
a.name = "test";
a.age = 27;
fmt.Println(a); //简单初始化方式
b := Person{
name: "test2",
age: 24,
};
fmt.Println(b); //调用函数A,这里是传递的值拷贝
A(b);
fmt.Println(b); //调用函数B,这里传递的是地址
B(&b);
fmt.Println(b); //对结构初始化的时候,一般直接用取地址符号
c := &Person{
name: "test3",
age: 25,
};
//在调用函数时,就不需要写取地址&符号
B(c);
fmt.Println(c); //匿名结构
d := struct {
name string;
age int;
}{
name: "test4",
age: 22,
};
fmt.Println(d);
e := Person2{
name: "test5",
age: 33,
}; //匿名结构的初始化
e.contact.phone = "1388888888";
e.contact.addr = "地址";
fmt.Println(e); //注意字段的顺序
f := Person3{
"test6",
55,
};
fmt.Println(f); //两个结构间的比较
g := f;
fmt.Println(g == f); //嵌入结构的初始化
h := Person4{
Person: Person{name: "test7", age: 66},
phone: "139999999",
addr: "地址2",
};
fmt.Println(h);
h.Person.name = "哈哈";
h.Person.age = 99;
fmt.Println(h);
//可以对name和age直接操作
h.name = "haohao";
h.age = 88;
fmt.Println(h);
} func A(p Person) {
p.age = 33;
fmt.Println(p);
} func B(p *Person) {
p.age = 33;
fmt.Println(p);
}
go语言中结构struct的更多相关文章
- C语言中结构体赋值问题的讨论
今天帮师姐调一个程序的BUG,师姐的程序中有个结构体直接赋值的语句,在我印象中结构体好像是不能直接赋值的,正如数组不能直接赋值那样,我怀疑这个地方有问题,但最后证明并不是这个问题.那么就总结一下C语言 ...
- C语言中结构体对齐问题
C语言中结构体对齐问题 收藏 关于C语言中的结构体对齐问题 1,比如: struct{short a1;short a2;short a3;}A;struct{long a1;short a2;}B; ...
- C语言中结构体赋值问题的讨论(转载)
今天帮师姐调一个程序的BUG,师姐的程序中有个结构体直接赋值的语句,在我印象中结构体好像是不能直接赋值的,正如数组不能直接赋值那样,我怀疑这个地方有问题,但最后证明并不是这个问题.那么就总结一下C语言 ...
- Go语言中结构体的使用-第2部分OOP
1 概述 结构体的基本语法请参见:Go语言中结构体的使用-第1部分结构体.结构体除了是一个复合数据之外,还用来做面向对象编程.Go 语言使用结构体和结构体成员来描述真实世界的实体和实体对应的各种属性. ...
- 6. Go 语言中结构体的使用
1. 结构体的定义格式 在go语言中结果的定义格式如下: 123 type structName struct { filedList} 列子如下: 1234 type Person struct { ...
- C语言中结构体内存存储方式
C语言中结构体内存存储方式 结构体的默认存储方式采用以最大字节元素字节数对其方式进行对齐,例如一个结构体中定义有char.int类型元素,则结构体存储空间按照int类型占用字节,如果还有double类 ...
- Go语言中结构体的使用-第1部分结构体
1 概述 结构体是由成员构成的复合类型.Go 语言使用结构体和结构体成员来描述真实世界的实体和实体对应的各种属性.结构体成员,也可称之为成员变量,字段,属性.属性要满足唯一性.结构体的概念在软件工程上 ...
- c语言中结构体指针
1.指向结构体的指针变量: C 语言中->是一个总体,它是用于指向结构体,如果我们在程序中定义了一个结构体,然后声明一个指针变量指向这个结构体.那么我们要用指针取出结构体中的数据.就要用到指向运 ...
- C语言中结构体(struct)的几种初始化方法
转自https://www.jb51.net/article/91456.htm 本文给大家总结的struct数据有3种初始化方法 1.顺序 2.C风格的乱序 3.C++风格的乱序 下面通过示 ...
随机推荐
- Ajax核心技术代码
/* @author weichen */ var xhr = ''; function Ajax() { if(window.XMLHttpRequest) { var xhr = new XMLH ...
- OCR技术浅探(转)
网址:https://spaces.ac.cn/archives/3785 OCR技术浅探 作为OCR系统的第一步,特征提取是希望找出图像中候选的文字区域特征,以便我们在第二步进行文字定位和第三步进行 ...
- 配置IIS支持Json格式
配置iis支持.json格式的文件 原文地址:http://blog.eroad.info/iis-suport-json/ 在做easyUI的官方示例的时候 有的例子是直接读取的json文件,但是默 ...
- CSS 选用字体
font-family CSS的font-family属性可以指定(选择)字体. 语法: 1 font-family: Gill Sans Extrabold, sans-serif; font-fa ...
- DM 9000网卡驱动移植
1. 由于内核已经带有DM9000 网卡的驱动,所以主要移植工作是在板文件中添加 platform_device 结构,并加入 ok6410_devices[] __initdata 数组. 代码如下 ...
- Java NIO Path
Java NIO Path Creating a Path Instance Creating an Absolute Path Creating a Relative Path Path.norma ...
- 大型运输行业实战_day15_1_全文检索之Lucene
1.引入 全文检索简介: 非结构化数据又一种叫法叫全文数据.从全文数据(文本)中进行检索就叫全文检索. 2.数据库搜索的弊端 案例 : select * from product whe ...
- Real Time Render 4
[Real Time Render 4] 1.Radiometry(辐射测试) deals with the measurement of electromagnetic(电磁) radiation( ...
- wamp 安装redis扩展
phpredis扩展下载地址 http://windows.php.net/downloads/pecl/snaps/redis/ 1.选择redis DLL文件扩展 phpinfo 查看VC版本 ...
- oracle 的查询问题!!!
问题: declare aaa integer;email varchar2(100) :='1234@aa.com';begin select count(*) into aaa from dual ...