1.golang学习笔记:数组是一种值类型
来源:互联网 发布:理光打印机监控软件 编辑:程序博客网 时间:2024/05/30 21:58
golang中数组–值类型
区别于C语言, golang中将一个数组看作是一个值类型,这里与C语言作为对比进行解释。
在C语言中,例如定义一个int类型的数组
int array[10] = {12, 23, 34, 45, 56};
则array实际上代表的是一个地址,例如在函数的参数传递中,实际参数传递一个int数组的数组名, 实际上把该数组的地址传递给了函数。
#include <stdio.h>void show_array(int *array, int length);void show_array(int *array, int length){ int i = 0; for(i = 0; i < length; i++){ printf("%d ", array[i]) } printf("\n") }int main(int argc, char **argv){ int array[10] = {12, 23, 34, 45, 56}; show_array(array, sizeof(array)/ sizeof(int))}
实际上show_array函数中接受的只是array数组的地址。而在golang中如果将数组作为参数传递,则会发生拷贝现象。在函数体中无法修改传入的数组的内容,因为函数内操作的只是所传入数组的一个副本。
定义一个int数组:
array := [10]int {1, 2, 3, 4, 5}
编写修改数组内容的函数:
func modifyArray(array [10]int) { array[3] = 40 fmt.Println("In modifyArray() function, array values: ", array)}
在main()中打印调用modifyArray后的数组的值:
modifyArray(array)fmt.Println("In main() function, array values: ", array)
调用后的结果如下所示:
In modifyArray() function, array values: [1 2 3 40 5 0 0 0 0 0]In main() function, array values: [1 2 3 4 5 0 0 0 0 0]
主函数中int数组并未被修改,如果想要在函数内部操作外部的数据结构。需要用到数组切片功能。后边会对大家进行讲解。
阅读全文
0 0
- 1.golang学习笔记:数组是一种值类型
- golang学习笔记之引用类型与值类型
- 学习Golang语言(5):类型--数组
- Golang 学习笔记 ---类型和一个 HelloWorld
- golang类型系统笔记
- UML 学习笔记------ 建模是一种艺术
- Golang学习笔记:语言规范之词汇元素和类型
- Golang学习笔记:语言规范之类型(续)
- 四、golang类型讲解--go语言学习笔记
- golang 学习笔记(1)数组,切片,字典
- golang 函数证明数组为 值类型 数据
- 100 数组和指针绝不等价,数组是另外一种类型
- GoLang学习基础笔记
- Golang学习笔记//序
- Golang Log 学习笔记
- Golang学习笔记:常见问题
- Golang学习笔记
- golang学习笔记
- MySQL命令(针对shell命令行)下篇
- F
- hibernate中表建立不出来
- Unity3d 技巧(6) -将RenderTexture保存成一张png图片
- 前端基础进阶(二):执行上下文详细图解
- 1.golang学习笔记:数组是一种值类型
- Spark ML PipeLine学习笔记
- 判断N!末尾有多少个0
- 通过 lua 进行 nginx redis 访问控制
- 【ACF学习】ACF安装、训练及检测初探
- HLS实现Bilateral Filtering双边滤波器
- 前端基础进阶(三):变量对象详解
- android设置EditView文本框不能编辑:
- 排序算法之快速排序