Go语言中struct的匿名属性特征实例分析
本文实例分析了Go语言中struct的匿名属性特征。分享给大家供大家参考。具体分析如下:
Go语言中struct的属性可以没有名字而只有类型,使用时类型即为属性名。(因此,一个struct中同一个类型的匿名属性只能有一个)
type PersonC struct {
id int
country string
}
//匿名属性
type Worker struct {
//如果Worker有属性id,则worker.id表示Worker对象的id
//如果Worker没有属性id,则worker.id表示Worker对象中的PersonC的id
id int
name string
int
*PersonC
}
func structTest0404() {
w := &Worker{}
w.id = 201
w.name = "Smith"
w.int = 49
w.PersonC = &PersonC{100001, "China"}
fmt.Printf("name:%s,int:%d\n", w.name, w.int)
fmt.Printf("inner PersonC,id:%d,country:%s\n",
w.PersonC.id, w.PersonC.country)
fmt.Printf("worker.id:%d,personC.id:%d\n", w.id, w.PersonC.id)
/*output:
name:Smith,int:49
inner PersonC,id:100001,country:China
worker.id:201,personC.id:100001
*/
}
希望本文所述对大家的Go语言程序设计有所帮助。
相关推荐
-
Go语言struct类型介绍
struct 我们可以声明新的类型,作为其它类型的属性或字段容器. 如,创建一个自定义类型person代表一个人的实体.这个实体拥有属性:姓名&年龄.这样的类型我们称之为struct. 复制代码 代码如下: type person struct{ name string age int } 复制代码 代码如下: var P person // P 现在就是 person 类型的变量了 P.name = "Astaxie" // 赋值 "
-
解析Go语言编程中的struct结构
struct和C语言的很相似,模拟出class的功能,但是不完全的!没有构造函数等! struct的申明 复制代码 代码如下: package main import "fmt" type Person struct { Age int Name string } func main() { //初始化两种 a := Person{} a.Age = 2 a.Name = "widuu" fmt.Println(a) b := Person{
-
Go语言struct类型详解
struct Go语言中,也和C或者其他语言一样,我们可以声明新的类型,作为其它类型的属性或字段的容器.例如,我们可以创建一个自定义类型person代表一个人的实体.这个实体拥有属性:姓名和年龄.这样的类型我们称之struct.如下代码所示: 复制代码 代码如下: type person struct { name string age int } 看到了吗?声明一个struct如此简单,上面的类型包含有两个字段. 1.一个string类型的字段name,用来保存用户名称这个属性
-
Go语言中struct的匿名属性特征实例分析
本文实例分析了Go语言中struct的匿名属性特征.分享给大家供大家参考.具体分析如下: Go语言中struct的属性可以没有名字而只有类型,使用时类型即为属性名.(因此,一个struct中同一个类型的匿名属性只能有一个) 复制代码 代码如下: type PersonC struct { id int country string } //匿名属性 type Worker struct { //如果Worker有属性id,则worker.id表示
-
Go语言中Struct与继承与匿名字段和内嵌结构体全面详解
目录 定义 内嵌结构体 在golang中,采用匿名结构体字段来模拟继承关系.这个时候,可以说 Student 是继承自 Person . type Person struct { name string age int sex string } func (Person) SayHello(){ fmt.Println("this is from Person") } type Student struct { Person school string } func main() {
-
GO语言中err接口及defer延迟异常处理分析
目录 err接口 panic函数 defer延迟 defer与匿名函数结合使用 recover防止程序中断 err接口 Go语言引入了一个关于错误处理的标准模式,即error接口,它是Go语言内建的接口类型,该接口的定义如下: type error interface { Error() string } 调用对应接口 err:=errors.New("this is normal err") fmt.Println(err.Error()) err2:=fmt.Errorf(&quo
-
C语言中access/_access函数的使用实例详解
在Linux下,access函数的声明在<unistd.h>文件中,声明如下: int access(const char *pathname, int mode); access函数用来判断指定的文件或目录是否存在(F_OK),已存在的文件或目录是否有可读(R_OK).可写(W_OK).可执行(X_OK)权限.F_OK.R_OK.W_OK.X_OK这四种方式通过access函数中的第二个参数mode指定.如果指定的方式有效,则此函数返回0,否则返回-1. 在Windows下没有access函
-
C语言中-a++和-++a运算顺序实例解析
目录 前言 一.首先 二.其次 补充:下面讲解下3-3的例题 最后 前言 -a++ ,如果a=3,那么-a++输出的结果是多少? -3还是-4? 一.首先 先来了解一下算术运算符的优先级和结合性: 运算符 优先级 结合性 ++.--.+(正).-(负) 同级 高 ^ | | 低 右结合 *./.% 同级 左结合 +(加).-(减) 同级 左结合 右结合*./.%同级左结合+(加).-(减)同级左结合 在C语言中,计算表达式的值也需要按运算符的优先级从高到低的顺序进行计算. 例如,表达式 a+b*
-
解析c语言中"函数调用中缺少哨兵"的情况分析
在写一个练习时候出现的.觉得奇怪,因为翻译说缺少哨兵??什么意思呢...===================================== 复制代码 代码如下: /*//练习如下,创建一个进程*/#include <unistd.h>#include <stdio.h>#include <stdlib.h> int main(void){ printf("Running ps with execlp\n"); execlp("
-
JSP自定义标签rtexprvalue属性用法实例分析
本文实例讲述了JSP自定义标签rtexprvalue属性.分享给大家供大家参考.具体如下: 其实以前也有写过自定义标签, 但是没有注意到过<rtexprvalue>的用法, 最近这几天又用上自定义标签了, 突然发现<rtexprvalue>的用法是有讲究的. rtexprvalue的全称是 Run-time Expression Value, 它用于表示是否可以使用JSP表达式. 当在<attribute>标签里指定<rtexprvalue>true<
-
javascript中innerText和innerHTML属性用法实例分析
本文实例讲述了javascript中innerText和innerHTML属性用法.分享给大家供大家参考.具体分析如下: 几乎所有DOM元素都有innerText,innertHTML属性(注意大小写),分别是元素标签内 的文本表示形式和HTML源代码,这两个属性是可读可写的 innerHTML也可以取代createElement,属于简单,粗放型,后果自负的创建 <html xmlns="http://www.w3.org/1999/xhtml"> <head>
-
C#索引属性用法实例分析
本文实例讲述了C#索引属性的用法.分享给大家供大家参考.具体如下: 这里演示C#类如何声明索引属性以表示不同种类事物的类似数组的集合. // indexedproperty.cs using System; public class Document { // 以下类型允许文档的查看方式与字的数组一样: public class WordCollection { readonly Document document; // 包含文档 internal WordCollection(Documen
-
JS中超越现实的匿名函数用法实例分析
本文实例讲述了JS中超越现实的匿名函数用法.分享给大家供大家参考,具体如下: 一般函数: function show1(name){ alert(name); //打印:zhangsan } show1("zhangsan"); 匿名函数: var show2 = function (name) { alert(name); //打印:张三 } show2("张三"); 上面2种定义函数的区别: 1.我们知道所有的function都会在window对象里 funct
随机推荐
- go语言中sort包的实现方法与应用详解
- 启动targetcli时遇到错误解决办法
- Git 教程之工作区、暂存区和版本库详解
- PHP防止post重复提交数据的简单例子
- php源码分析之DZX1.5随机数函数random用法
- C#简单读取主机上所有进程的方法
- 基于C++中sprintf的错误总结详解
- Mac OS X 系统下安装和部署Egret引擎开发环境
- Zepto实现密码的隐藏/显示
- JDBC数据库的使用操作总结
- 各种页面定时跳转(倒计时跳转)代码总结
- Java通过关闭Socket终止线程
- js检测网络是否具体连接功能的代码
- JS实现文字掉落效果的方法
- js中判断控件是否存在
- 关于Hosts文件
- C# IEnumerable和IEnumerator接口浅析
- Java序列化(Serialization) 机制
- ASP.NET编译执行常见错误及解决方法汇总
- php _autoload自动加载类与机制分析