GO语言练习:值与引用

简介:

1、代码

2、运行


复制代码
 1 package main
 2 
 3 import "fmt"
 4 
 5 func testValue(){
 6     fmt.Println("for value")
 7     var a = [3]int {1, 2, 3}
 8     var b = a 
 9     b[1]++
10     fmt.Println("a = ",a, "\nb = ", b)
11 }
12 
13 func testReference() {
14     fmt.Println("for reference")
15     var a = [3]int {1, 2, 3}
16     var b = &a
17     b[1]++
18     fmt.Println("a = ",a, "\nb = ", *b) 
19 }
20 
21 func main() {
22     testValue()
23     testReference()
24 }
复制代码

2、运行

复制代码
$ go run valueAndRreference.go 
for value
a =  [1 2 3] 
b =  [1 3 3]
for reference
a =  [1 3 3] 
b =  [1 3 3]
复制代码

 



本文转自郝峰波博客园博客,原文链接:http://www.cnblogs.com/fengbohello/p/4625479.html,如需转载请自行联系原作者


相关文章
|
17天前
|
Go
go语言map、实现set
go语言map、实现set
26 0
|
17天前
|
Go
go语言数组与切片
go语言数组与切片
26 0
|
3天前
|
JSON 测试技术 Go
零值在go语言和初始化数据
【7月更文挑战第10天】本文介绍在Go语言中如何初始化数据,未初始化的变量会有对应的零值:bool为`false`,int为`0`,byte和string为空,pointer、function、interface及channel为`nil`,slice和map也为`nil`。。本文档作为指南,帮助理解Go的数据结构和正确使用它们。
52 22
零值在go语言和初始化数据
|
4天前
|
安全 算法 程序员
在go语言中使用泛型和反射
【7月更文挑战第8天】本文介绍go支持泛型后,提升了代码复用,如操作切片、映射、通道的函数,以及自定义数据结构。 泛型适用于通用数据结构和函数,减少接口使用和类型断言。
62 1
在go语言中使用泛型和反射
|
7天前
|
缓存 编译器 Shell
回顾go语言基础中一些特别的概念
【7月更文挑战第6天】本文介绍Go语言基础涵盖包声明、导入、函数、变量、语句和表达式以及注释。零值可用类型如切片、互斥锁和缓冲,支持预分配容量以优化性能。
39 2
回顾go语言基础中一些特别的概念
|
10天前
|
存储 Go API
一个go语言编码的例子
【7月更文挑战第2天】本文介绍Go语言使用Unicode字符集和UTF-8编码。Go中,`unicode/utf8`包处理编码转换,如`EncodeRune`和`DecodeRune`。`golang.org/x/text`库支持更多编码转换,如GBK到UTF-8。编码规则覆盖7位至21位的不同长度码点。
110 1
一个go语言编码的例子
|
13天前
|
JSON 算法 测试技术
在go语言中调试程序
【6月更文挑战第29天】Go语言内置`testing`包支持单元测试、基准测试和模糊测试。`go test`命令可执行测试,如`-run`选择特定测试,`-bench`运行基准测试,`-fuzz`进行模糊测试。
36 2
在go语言中调试程序
|
3天前
|
JSON Java Go
Go 语言性能优化技巧
在Go语言中优化性能涉及数字字符串转换(如用`strconv.Itoa()`代替`fmt.Sprintf()`)、避免不必要的字符串到字节切片转换、预分配切片容量、使用`strings.Builder`拼接、有效利用并发(`goroutine`和`sync.WaitGroup`)、减少内存分配、对象重用(`sync.Pool`)、无锁编程、I/O缓冲、正则预编译和选择高效的序列化方法。这些策略能显著提升代码执行效率和系统资源利用率。
39 13
|
3天前
|
设计模式 Go
Go语言设计模式:使用Option模式简化类的初始化
在Go语言中,面对构造函数参数过多导致的复杂性问题,可以采用Option模式。Option模式通过函数选项提供灵活的配置,增强了构造函数的可读性和可扩展性。以`Foo`为例,通过定义如`WithName`、`WithAge`、`WithDB`等设置器函数,调用者可以选择性地传递所需参数,避免了记忆参数顺序和类型。这种模式提升了代码的维护性和灵活性,特别是在处理多配置场景时。
39 8
|
4天前
|
前端开发 JavaScript Go