`
JArcher
  • 浏览: 27594 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

goang-给type定于方法,用Values和用Pointers的区别

    博客分类:
  • go
 
阅读更多

其实effectiv go里面说的很清楚了

 

http://weekly.golang.org/doc/effective_go.html#pointers_vs_values

 

我这里写了个例子,还是不明白的话,我在详细解释下

 

 

package main


import "log"

type PointerMethodInvoke struct{
	Foo string
}

func (this *PointerMethodInvoke) ChangeFoo(foo string){
	this.Foo = foo
	log.Println("change Foo,result is :",this.Foo)
}

type ValueMethodInvoke struct{
	Foo string
}

func (this ValueMethodInvoke) ChangeFoo(foo string){
	this.Foo = foo
	log.Println("change Foo,result is :",this.Foo)
}

func main() {
	pointerMethodInvoke := new(PointerMethodInvoke)
	pointerMethodInvoke.Foo = "foo"
	log.Println(pointerMethodInvoke.Foo)
	pointerMethodInvoke.ChangeFoo("bar")
	log.Println(pointerMethodInvoke.Foo)
	
	valueMethodInvoke := new(ValueMethodInvoke)
	valueMethodInvoke.Foo = "foo"
	log.Println(valueMethodInvoke.Foo)
	valueMethodInvoke.ChangeFoo("bar")
	log.Println(valueMethodInvoke.Foo)
}

 

 

输出:

 

2011/12/16 15:03:48 foo

2011/12/16 15:03:48 change Foo,result is : bar

2011/12/16 15:03:48 bar

2011/12/16 15:03:48 foo

2011/12/16 15:03:48 change Foo,result is : bar

2011/12/16 15:03:48 foo

分享到:
评论

相关推荐

    php使用openssl_encrypt中的AES-128-ECB加密解密

    这可以是随机生成的字符串,但必须确保在加密和解密过程中使用的是相同的密钥。 2. **初始化向量(IV)**:在某些加密模式中,如CBC或CFB,需要一个初始化向量,但ECB模式不需要IV,因此你可以留空或提供任何值,`...

    digest 用户认证 response生成算法

    在网络安全认证领域,digest用户认证是一种使用摘要算法对用户凭证进行加密验证的技术,它允许在不安全的网络通道中安全地进行身份验证。digest认证机制通常用于基于HTTP和SIP(Session Initiation Protocol)协议的...

    go-workflow:go版本极简工作流引擎

    3.使用json数组替代bpmn来生成流程定义,简化流程定义的生成 二、go-workflow框架 1.go-workflow 数据库设计 1.1 流程定义表 表 procdef 用于保存流程的配置, 主要字段有: name: 流程定义的名称,如:"请假流程" ...

    go-ntlmssp:通过HTTP进行NTLM协商身份验证

    gontlmssp ... 来自协议详细信息来自实现提示 该软件包仅实现身份验证,不进行密钥交换或加密。 它仅支持协议字符串的Unicode(UTF16LE)编码,不支持OEM编码。 该软件包实现了NTLMv2。 用法 ... Transport: ntlmssp....

    Win10 + Golang1.13.5 + Go module 开发环境搭建

    在本文中,我们将详细介绍如何在Windows 10操作系统上搭建Golang 1.13.5的开发环境,包括使用Go module进行项目管理。首先,我们来看一下搭建环境的步骤。 一、安装Golang 1. 访问Golang官方网站...

    goHttpDns, Go编写的HttpDns服务器.zip

    goHttpDns, Go编写的HttpDns服务器 goHttpDns 为了避免Dns劫持和缓存解析问题,HttpDns服务器编写了一个服务器:如何编译cd $GOPATH;git clone http://github.com/zheng-ji/goHttpDn

    基于Gin的Golang API入门套件-Golang开发

    我们的目标是减少使用API​​时经常会遇到的默认功能的开发时间。 下面介绍了一组有用的工具。 随时贡献! 概述这是一个基于Gin框架的API框架项目。 我们的目标是减少使用API​​时经常会遇到的默认功能的开发时间。...

    golang.org/x

    `golang.org/x` 是 Go 语言生态系统中的一个特殊仓库,包含了由 Go 语言官方维护但并未包含在标准库中的各种模块和工具。这个仓库包含了众多实用的第三方组件,如网络编程库、数据库驱动、文本处理工具等。由于 `...

Global site tag (gtag.js) - Google Analytics