格式

初始化数组 {}中的元素数不能大于[]中的数字,并且长度在初始化后不能改变,定义数组时需指定长度 ...

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数组声明的更多相关文章

  1. Java 数组声明与初始化

    引言 学习了好久的java,每次要写数组的声明和初始化代码,总是理不清.最近又碰到了一次这种情况.这次拿出<Thinking In Java>好好总结一翻. 数组声明 对于数组的声明其实都 ...

  2. php数组声明、遍历、数组全局变量使用小结

    数组的本质:管理和操作一组变量,成批处理,下面为大家介绍下数组的分类.数组的分类及使用说明,感兴趣的朋友可以了解下哈   php教程:数组声明,遍历,数组全局变量  <? /* * 一.数组的概 ...

  3. PHP新手之学习数组声明

    数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式.这些按序排列的同类数据元素的集合称为数组.下面介绍PHP中的数组声明. 一.数组的概述 1.数组的本质:管理 ...

  4. Golang: 数组和切片

    数组 同其他语言一样,数组是一些相同类型的元素的集合.数组声明 数组的类型为 n[T],其中 n 表示数组中元素的个数,T 表示数组中元素的类型.数组元素的个数 n 也是数组类型的一部分 packag ...

  5. Golang Struct 声明和使用

    Golang Struct 声明和使用 Go可以声明自定义的数据类型,组合一个或多个类型,可以包含内置类型和用户自定义的类型,可以像内置类型一样使用struct类型 Struct 声明 具体的语法 t ...

  6. Java数组声明与拷贝的几种方式

    Java数组声明的三种方式 第一种(声明并初始化):          数据类型[] 数组名={值,值,...};          例:int[] a = {1,2,3,4,5,6,7,8};    ...

  7. 处理函数和数组声明[条款17]---《C++必知必会》

    指向函数的指针声明和指向数组的指针声明容易混淆,原因在于函数和数组修饰符的优先级比指针修饰符的优先级高,因此通常需要使用圆括号. int *f1( );//一个返回值为 int* 的函数 int ( ...

  8. 第27天:js-表单获取焦点和数组声明遍历

    一.表单 1.this指事件的调用者2.input.value 表单更换内容3.innerHTML更换盒子里的内容,文字.标签都能换.4.isNaN("12")如果里面的不是个数字 ...

  9. golang 数组

    数组是Go语言编程中最常用的数据结构之一.顾名思义,数组就是指一系列同一类型数据的集合.数组中包含的每个数据被称为数组元素(element),一个数组包含的元素个数被称为数组的长度. 在Go语言中数组 ...

随机推荐

  1. Notepad++和Sublime单词首字符大小写转化问题

  2. Java 泛型 1例

    private <T> T getFirstItem(List<T> list) {        T item = null;        if(list != null ...

  3. WebLogic: 内存溢出

    每次部署完项目,重启Weblogic服务,总是遇到java.lang.OutOfMemoryError: PermGen space,其实物理内存也是够的,当时的解决方法就是多重启几次Weblogic ...

  4. [转帖]知乎专栏:正确使用 Docker 搭建 GitLab 只要半分钟

    正确使用 Docker 搭建 GitLab 只要半分钟 https://zhuanlan.zhihu.com/p/49499229 很多程序员在内网搭建 gitlab 都搭建的坑坑洼洼,不支持 htt ...

  5. [自学]Docker system 命令 查看docker镜像磁盘占用情况 Docker volume 相关

    内容From https://docs.docker.com/engine/reference/commandline/system_df/ docker的image和docker的container ...

  6. selenium之测试卫星资料页面操作(元素遍历)

    # 测试气象卫星资料页面功能 # author:gongxr # date:2017-07-24 import random, time from selenium import webdriver ...

  7. Django-website 程序案例系列-13 中间件

    自定义中间件1: from django.utils.deprecation import MiddlewareMixin # 中间件需要引用的包 class Row1(MiddlewareMixin ...

  8. 睡前小dp-poj2096-概率dp

    http://poj.org/problem?id=2096 有n种分类,s种子系统,相互独立.每天发现一个bug等概率的属于n种分类和s种子系统. 要使发现的bug完全覆盖n种分类,s种分类,求天数 ...

  9. DeBruijin HDU - 2894(????????)

    题意: 莫名其妙 看不懂..只能靠别人的题意混日子 a完就懂了  就是 POJ1392  不求第k个了  直接输出这个路径 emm ...就改了一下那个代码 #include <iostream ...

  10. [树链剖分]hihocoder1883

    描述 有一个无向图,有n个点,m1条第一类边和m2条第二类边.第一类边有边权,第二类边无边权.请为第二类的每条边定义一个边权,使得第二类边可能全部出现在该无向图的最小生成树上,同时要求第二类边的边权总 ...