golang数组声明
格式
初始化数组 {}中的元素数不能大于[]中的数字,并且长度在初始化后不能改变,定义数组时需指定长度 ...
var arrName [num]type = [num]type{value, value, value,....}
在函数调用时, 数组是值传递,而分片是引用传递
其实对于go
来说,函数调用的时候都是值传递,拷贝一个副本, 切片本身它就是指针
var (
arr1 = [3]int{1, 2, 3}
slice1 = []int{1, 2, 3, 4, 5}
) func arr(array [3]int) {
fmt.Printf("%p\n", &arr1)
fmt.Printf("%p\n", &array)
} func slicep(slice2 []int) {
fmt.Printf("%p\n", slice1)
fmt.Printf("%p\n", slice2)
} func main() {
arr(arr1)
slicep(slice1)
}
数组,多维数组生成方式
func main() {
var a [5]int
var a1 = [...]string{"a", "b"}
var a2 = [...]int{1, 2, 3, 4, 5, 6, 7}
var a3 = [...][2]int{
{1, 2},
{4, 5},
}
var a4 [3][5]string = [...][5]string{
{"a", "b"},
{"c", "d"},
{"f", "g"},
}
}
注意:...在一行只能用一次,否则会报 use of [...] array outside of array literal
var a4 [3][5]string = [...][5]string{
{"a", "b"},
{"c", "d"},
{"f", "g"},
{"f", "g"},
}
var a4 [...][5]string = [...][5]string{
{"a", "b"},
{"c", "d"},
{"f", "g"},
{"f", "g"},
}
数组是值类型,改变的是副本的值,不会改变本身的值
package main import (
"fmt"
) func main() {
var a = [...]int{1, 2, 4, 5, 6} var b = a b[1] = 10000 fmt.Println(a)
fmt.Println(b) }
练习:使用数组打印斐波那契数列
package main import (
"fmt"
) func calc(n int) []int64 {
var a []int64
a = make([]int64, n) a[0] = 1
a[1] = 1 for i := 2; i < n; i++ {
a[i] = a[i-1] + a[i-2]
}
return a
} func main() {
var test = calc(10) fmt.Println(test)
}
golang数组声明的更多相关文章
- Java 数组声明与初始化
引言 学习了好久的java,每次要写数组的声明和初始化代码,总是理不清.最近又碰到了一次这种情况.这次拿出<Thinking In Java>好好总结一翻. 数组声明 对于数组的声明其实都 ...
- php数组声明、遍历、数组全局变量使用小结
数组的本质:管理和操作一组变量,成批处理,下面为大家介绍下数组的分类.数组的分类及使用说明,感兴趣的朋友可以了解下哈 php教程:数组声明,遍历,数组全局变量 <? /* * 一.数组的概 ...
- PHP新手之学习数组声明
数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式.这些按序排列的同类数据元素的集合称为数组.下面介绍PHP中的数组声明. 一.数组的概述 1.数组的本质:管理 ...
- Golang: 数组和切片
数组 同其他语言一样,数组是一些相同类型的元素的集合.数组声明 数组的类型为 n[T],其中 n 表示数组中元素的个数,T 表示数组中元素的类型.数组元素的个数 n 也是数组类型的一部分 packag ...
- Golang Struct 声明和使用
Golang Struct 声明和使用 Go可以声明自定义的数据类型,组合一个或多个类型,可以包含内置类型和用户自定义的类型,可以像内置类型一样使用struct类型 Struct 声明 具体的语法 t ...
- Java数组声明与拷贝的几种方式
Java数组声明的三种方式 第一种(声明并初始化): 数据类型[] 数组名={值,值,...}; 例:int[] a = {1,2,3,4,5,6,7,8}; ...
- 处理函数和数组声明[条款17]---《C++必知必会》
指向函数的指针声明和指向数组的指针声明容易混淆,原因在于函数和数组修饰符的优先级比指针修饰符的优先级高,因此通常需要使用圆括号. int *f1( );//一个返回值为 int* 的函数 int ( ...
- 第27天:js-表单获取焦点和数组声明遍历
一.表单 1.this指事件的调用者2.input.value 表单更换内容3.innerHTML更换盒子里的内容,文字.标签都能换.4.isNaN("12")如果里面的不是个数字 ...
- golang 数组
数组是Go语言编程中最常用的数据结构之一.顾名思义,数组就是指一系列同一类型数据的集合.数组中包含的每个数据被称为数组元素(element),一个数组包含的元素个数被称为数组的长度. 在Go语言中数组 ...
随机推荐
- Alpha冲刺随笔集
作业地址 项目名称:高校实验室信息化管理系统 团队成员 学号 姓名 031602636 许舒玲 031602237 吴杰婷 031602220 雷博浩 031602634 吴志鸿 181600107 ...
- PAT 1014 福尔摩斯的约会
https://pintia.cn/problem-sets/994805260223102976/problems/994805308755394560 大侦探福尔摩斯接到一张奇怪的字条:“我们约会 ...
- Jquery 组 checkbox全选按钮
<!DOCTYPE html><html lang="zh-cn"><head> <meta charset="utf-8&qu ...
- iptables防火墙配置
iptables防火墙配置 一.防火墙简介 1.功能: 1)通过源端口,源IP地址,源MAC地址,包中特定标记和目标端口,IP,MAC来确定数据包是否可以通过防火墙 2)分割内网和外网[附带的路由器的 ...
- SpringBoot(十五)_springboot实现预览pdf
最近,项目上要做个打印的东西,还要预览.我想就直接生成pdf预览,然后用户选择打印 于是,昨天找了找资料.一般用itext 进行转pdf.于是我就用springboot试了试,代码比较简单,现在只是简 ...
- SourceTree 如何下载git 管理的代码-如何创建分支,删除分支,提交代码,回退代码
把用户给的链接拿过来,然后输入浏览器,然后在左侧会有Actions 中有个Clone;点击Clone之后,有个 Clone in Source Tree 点击,打开你的本地Source Tree,然后 ...
- Java之修改文件内容:字符串逐行替换
依赖包: <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</a ...
- 睡前小dp-poj1276-多重背包+二进制优化
http://poj.org/problem?id=1276 简单的多重背包,不过需要优化一下才能过.网上还有暴力的做法. 二进制优化在背包九讲里讲的比较清楚.对于多重背包的每一件物品,使用二进制的形 ...
- 切割模型固定写死了切平面方程是y=0.1
上一篇讲到3d模型切割我遇到的问题(切面的纹理会混乱),经过这段时间的琢磨,有了解决方案,当然我这里只给出我的解决思路,投入到实际项目中还需要做许多工作,比如我在上一篇中切割模型固定写死了切平面方程是 ...
- 自学Zabbix11.5 Zabbix SNMP监控实例
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 自学Zabbix11.5 Zabbix SNMP监控实例-监控网络设备内存使用情况 1. zabb ...