golang 自定义接口体(与其他语言对象类似)

 1 /*
 2
 3     结构体变量:
 4         结构体的定义只是一种内存布局的描述,只有当结构体实例化时,才会真正地分配内存,
 5         因此必须在定义结构体并实例化后才能使用结构体的字段。
 6         type 类型名 struct {
 7             字段1 字段1类型
 8             字段2 字段2类型
 9             …
10         }
11     指针类型的结构体 :new 关键字对类型(包括结构体、整型、浮点数、字符串等)进行实例化,结构体在实例化后会形成指针类型的结构体
12         1 var o *类型名 = new(类型名)
13         2 o := &类型名{}
14         赋值 :
15         1 var o *类型名 = new(类型名){字段1:值}
16         2 o.字段1 = xxx
17         3 p := &struct {// 定义
18             name string
19         }{// 初始化
20             name:"lizi",
21         }
22     结构体方法:
23         1 每个方法只能有一个接收器(分: 非指针类型 和 指针类型 接收器)
24         2 非指针类型接收器: 当方法作用于非指针接收器时,Go语言会在代码运行时将接收器的值复制一份,在非指针接收器的方法中可以获取接收器的成员值,但修改后无效
25         3 指针类型接收器: 指针类型的接收器由一个结构体的指针组成,更接近于面向对象中的 this 或者 self
26         func (接收器变量 接收器类型) 方法名(参数列表) (返回参数) {
27             函数体
28         }
29         例:
30         type ObjectType struct{id int}
31         func (o *ObjectType) SetId(id) int{
32             o.id = id
33             return id
34         }
35         o := new(ObjectType)
36         o.SetId(0)
37         结构内嵌特性:
38         1 内嵌的结构体可以直接访问其成员变量
39         2 内嵌结构体的字段名是它的类型名
40         类型内嵌
41 */
42 package info_struct

原文地址:https://www.cnblogs.com/weihexinCode/p/12317058.html

时间: 2024-08-02 14:54:44

golang 自定义接口体(与其他语言对象类似)的相关文章

golang 自定义接口 和 实现接口

1 /* 2 定义: 3 type 接口名 interface{ 4 方法名(可选:参数列表) 可选:返回值列表 || (可选:返回值列表) 5 } 6 例:type Writer interface { 7 Write(p []byte) (n int, err error) 8 } 9 type Objecter interface{//定义接口 10 say(class int, value string) (b bool, err error) 11 } 12 实现接口: 13 1:接口

[golang note] 接口使用

侵入式接口 √ 在其他一些编程语言中,接口主要是作为不同组件之间的契约存在,即规定双方交互的规约. √ 对契约的实现是强制的,即必须确保用户的确实现了该接口,而实现一个接口,需要从该接口继承. √ 如果一个类实现了接口A,即便另一个接口B与A的方法列表相同,甚至连接口名都相同,但位于不同的命名空间下,那么编译器并不认为这两个接口是一样的. √ 所谓侵入的主要表现在于实现继承接口的类需要明确声明自己实现自某个接口. √ 侵入式接口常纠结的问题是:应该提供哪些接口好呢?如果两个类实现了相同的接口,应

golang中接口interface和struct结构类的分析

再golang中,我们要充分理解interface和struct这两种数据类型.为此,我们需要优先理解type的作用. type是golang语言中定义数据类型的唯一关键字.对于type中的匿名成员和指针成员,这里先不讲,重点讲解interface和struct这两种特殊的数据类型. interface和struct也是数据类型,特殊在于interface作为万能的接口类型,而struct作为常用的自定义数据类型的关键字.说到这里相比大家已经明白interface的侧重点在于接口的定义(方法),

Golang 入门 : 结构体(struct)

Go 通过类型别名(alias types)和结构体的形式支持用户自定义类型,或者叫定制类型.试图表示一个现实世界中的实体. 结构体由一系列命名的元素组成,这些元素又被称为字段,每个字段都有一个名称和一个类型. 结构体的目的就是把数据聚集在一起,以便能够更加便捷地操作这些数据.结构体的概念在 C 语言里很常见,被称为 struct.Golang 中的结构体也是 struct.Go 语言中没有类的概念,因此在 Go 中结构体有着更为重要的地位.结构体是复合类型(composite types),当

【干货】如何通过OPC自定义接口来实现客户端数据的读取?

上篇博文分享了我的知识库,被好多人关注,受宠若惊.今天我把我在项目中封装的OPC自定义接口的程序分享一下.下面将会简单简单介绍下OPC DA客户端数据访问,以及搭配整个系统的运行环境. OPC(OLE for Process Control)其实就是一套标准,我对这套标准理解不多,使用过程中就把它理解一套协议或者规范,主要用于工控领域.OPC中有很多规范,我主要使用OPC DA规范来进行数据的读写操作.还有其他规范,比如OPC UA.OPC HDA等.如果你做的是OPC Server开发查下这方

PHP玩转微信公众平台自定义接口

从微信公众平台开通自定义回复后,就一直在关注微信接口这一块,很想用自定义回复这块做个站长工具的查询,例如PR查询,备案查询等,输入网址信息,就能自动获取PR,获取备案信息,应该是一个不错的想法.不过以前一直不支持自定义API,只能是一些固定的信息回复.最近微信公众平台终于开放第三方接口了,也就是说,可以根据用户提交的信息,来自定义回复内容,非常方便. 看到了微信的自定义第三方接口的强大后,下面我们来讲讲怎么实现自定义回复. 首先我们进入第三方接口的页面进行注册,地址:http://mp.weix

struts2 在拦截器进行注入(根据Action是否实现自定义接口)

例如:常常在Action中都需要获取当前登录的User,就需要获取Session,然后从Session获取当前登录的User,因为这些步骤都是重复操作,可以想办法在拦截器中进行实现,可以自定义一个接口,只要你的Action实现了这个接口,就在自定义拦截器中进行注入.即从拦截器中获取Session,然后设置进行注入. 简单的例子: 一个自定义接口,只要Action实现这个接口,就在拦截器中进行注入 package com.atguigu.surveypark.struts2; import com

C语言结构体,C语言结构体指针,java对象引用,传值,传地址,传引用

C语言结构体,C语言结构体指针,java对象引用,传值,传地址,传引用 传值 把实参的值赋值给行参 那么对行参的修改,不会影响实参的值 传地址 传值的一种特殊方式,只是他传递的是地址,不是普通的如int 那么传地址以后,实参和行参都指向同一个对象 传引用 真正的以地址的方式传递参数 传递以后,行参和实参都是同一个对象,只是他们名字不同而已 对行参的修改将影响实参的值 所谓变量是内存地址的一个抽象名字,在静态编译的程序中,所有变量名都会在编译时转换成内存地址,机器不知道变量名,只知道地址. C 语

golang自定义数据类型查询与插入postgresql中point数据

golang自定义数据类型查询与插入postgresql中point数据 具体代码如下: package main import ( "bytes" "database/sql" "database/sql/driver" "fmt" _ "github.com/lib/pq" "strconv" "strings" ) // 自定义支持类型 type Point s