格式

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

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. centos7 服务操作命令

    systemctl list-unit-files --type service --all 操作防火墙: https://www.jianshu.com/p/411274f96492 操作VNC: ...

  2. How to leave the open file in eclipse tab after search?

    https://superuser.com/questions/130353/how-to-leave-the-open-file-in-eclipse-tab-after-search From m ...

  3. jquery ajax中data属性详解

    $.post.$.get是一些简单的方法,如果要处理复杂的逻辑,还是需要用到jQuery.ajax() 一.$.ajax的一般格式 $.ajax({ type: 'POST', url: url , ...

  4. JavaScript中的Date对象在IOS中的“大坑”

    在IOS5以上版本(不包含IOS5)中的Safari浏览器能正确解释出Javascript中的 new Date('2013-10-21') 的日期对象. 但是在IOS5版本里面的Safari解释ne ...

  5. rhel6+apache2.4+mysql5.7+php5.6部署LAMP架构

    rhel6+apache2.4+mysql5.7+php5.6部署LAMP架构 2017年10月01日 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~准备阶段~~~~~~~~~~~~~ ...

  6. 简单FTP服务器搭建

    1 配置IIS 打开控制面板-卸载程序-点击 打开或关闭windows功能-勾选 internet信息服务-确定 2 配置iis web站点 开始菜单-搜索iis并进入iis管理器(计算机-右键-管理 ...

  7. Lodop打印二维码内容长度不同如何大小相同

    利用Loodop打印控件打印二维码的时候,往往传入的数值是变量,有的只有一个数字,有的却一大堆数字和字母,根据内容长度不同,二维码大小也不同,这样如果批量打印二维码标签,传入的数据是不同的,会造成有的 ...

  8. appium学习记录1

    xpath定位: 语法 driver.find_element_by_xpath("//android.widget.EditText[@index="登陆"/../pr ...

  9. P2577 [ZJOI2005]午餐

    题目描述 上午的训练结束了,THU ACM小组集体去吃午餐,他们一行N人来到了著名的十食堂.这里有两个打饭的窗口,每个窗口同一时刻只能给一个人打饭.由于每个人的口味(以及胃口)不同,所以他们要吃的菜各 ...

  10. git上传到码云

    touch README.md git init git add README.md git add "你的文件" git commit -m "first commit ...