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语言中数组 ...
随机推荐
- HDU 2021 发工资咯:)
http://acm.hdu.edu.cn/showproblem.php?pid=2021 Problem Description 作为杭电的老师,最盼望的日子就是每月的8号了,因为这一天是发工资的 ...
- CentOs7 使用iptables防火墙开启关闭端口
CentOs7 使用iptables防火墙开启关闭端口 # 0x01介绍 iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分iptables文件设置路径:命令:v ...
- Oracle的简单的创建dblink以及进行数据迁移的方法
1. 创建dblink 语法如下: create public database link zhaobsh connect to lcoe739999 identified by Test6530 u ...
- 软件工程_6th weeks
一.上次博客时说的UI,拖拉到现在才展示,完成了“登录,普通匹配,做题界面,做题结果”四项 功能: 二.单元测试工具 1.python单元测试工具 最近因为论文原因一直在用Python,Pytho ...
- html 響應式web設計
RWD(響應式web設計)可以根據尺寸大小傳遞網頁,對於平板和移動設備是必須的. <html lang="en-US"> lang表示頁面的主要語言.http://ww ...
- Python——多进程
进程的实例 # -*- coding:UTF-8 -*- import os import time from multiprocessing import Process #进程 def func( ...
- NOIP 2018 游记(退役了!)
一片空白 在霉的不能再霉的18年11月,Noip2018上,倒霉的我也是贼有意思,感冒加身,D2发烧,数组开小…我还能说什么MMP,身体和考试能力真的很重要. ……(省略无数字的心理活动,有空补上~) ...
- spoj COT - Count on a tree (树上第K小 LCA+主席树)
链接: https://www.spoj.com/problems/COT/en/ 思路: 首先看到求两点之前的第k小很容易想到用主席树去写,但是主席树处理的是线性结构,而这道题要求的是树形结构,我们 ...
- MT【23】用算术几何不等式证明数列极限存在
评:如果不需要精确到3,上界的求法可以利用$$(1+\frac{1}{n})^n*\frac{1}{2}*\frac{1}{2}<(\frac{n+\frac{1}{n}*n+\frac{1}{ ...
- [AHOI2014/JSOI2014] 解题报告
[AHOI2014/JSOI2014] 奇怪的计算器 一个很关键的结论,任何时候每个数的相对大小是不变的. 于是可以把这个相对大小当成线段树的权值,每次只需要维护一下区间极值和tag就好了,关于操作四 ...