1、定义一个 array

  数组长度也是类型的一部分,比如长度为3的int数组与长度为5的int数组,并不是同一类型。

package main

import (
"strconv" //GO语言中将 int 转化成 string 比较麻烦,通常使用 strconv.Itoa(i)
) //格式化输出一个数组,因为不同长度的数组属于不同类型,这里只能用切片作为参数,调用时将数组转换成切片传入即可
func print_array(arr []int) {
var str string
str = "["
for k, v := range arr {
if k == len(arr)- {
str = str + strconv.Itoa(v)
} else {
str = str + strconv.Itoa(v) + ","
}
}
str += "]"
println(str)
} func main() {
//1、指明数组长度: 初始化的元素个数应该小于等于数组长度,否则会编译出错,如果初始化的元素长度小于数组个数,则未初始化部分系统会自动补为默认零值
array1 := []int{} //相当于 [0,0,0]
print_array(array1[:])
array2 := []int{, } //相当于 [1,2,0]
print_array(array2[:])
//arr := [3]int{1, 2, 3, 4} //初始化元素个数如果大于数组长度,则会编译出错
array3 := []int{: , : } //相当于[0,2,3] ,同 struct 一样,GO同样支持初始化时指定key,这里的key表示索引,未初始化的索引值为默认零值
print_array(array3[:]) //2、不指明数组长度: 数组的长度由初始化的元素决定
array4 := [...]int{, , } //相当于 [1,2,3]
print_array(array4[:]) array5 := [...]int{: , : } //相当于 [0,2,3]
print_array(array5[:])
}

2、数组操作

  通过数组名和数组下标即可进行访问和修改操作,通过 for .. range 可以进行遍历操作。因为数组的长度是固定的,也没有容量概念,所以概念和使用上都是比较简单的。

  for ... range 可以用于 array\slice\map 的遍历,如果对 string 进行遍历,则默认得到的 value 值是对应字符的ASCII码,这一点需要注意。

    //以下会输出 97,98,99,100,
s := "abcd"
for _, v := range s {
print(v, ",")
}

3、数组的特性

  GO语言中的数组是值类型,当赋值给另一个数组变量或作为方法参数传递时,都会复制数组的副本。

  注意,与C语言不同,数组的名字不代表数组的第一个元素的指针,这两种语言的数组存储结构不同,GO语言的数组存储结构是,首部存储数组长度,然后后面是实际数据。

  

golang笔记——array的更多相关文章

  1. Golang笔记(一)简洁的语言风格

    Golang笔记(一)简洁的语言风格 概述 Golang继承了很多C语言的风格,寡人使用了十几年C语言,切换到Golang时上手很快,并且随着深入的使用,越来越喜欢这门语言.Golang最直观的感受是 ...

  2. golang笔记1

    golang笔记1 go代码是用包来组织的,每个包有一个或多个go文件组成,这些go文件文件放在一个文件夹中 每个源文件开始都用一个package声明,指明本源文件属于哪个包 pakage声明后紧跟这 ...

  3. Golang笔记(二)面向对象的设计

    Golang笔记(二)面向对象的设计 Golang本质还是面向过程的语言,但它实现了一些OOP的特性,包括抽象.封装.继承和多态. 抽象和封装 Golang和C语言一样以struct为数据结构核心,不 ...

  4. golang之array

    golang使用array表示固定大小的数组,使用slice表示动态数组. package main import "fmt" func main() { var a = [5]i ...

  5. golang笔记2_程序结构

    golang程序结构 2.1 命名 Golang中的命名遵循这样一个简单原则,名字的开头必须是字母或者下划线,后面跟字母.数字或者下划线(这里与C语言中是一致的). 在函数内部声明的实体,即局部变量, ...

  6. golang中Array与Slice

    在golang中有数组和Slice两种数据结构,Slice是基于数组的实现,是长度动态不固定的数据结构,本质上是一个对数组字序列的引用,提供了对数组的轻量级访问.那么在go的函数中以数组或Slice为 ...

  7. Golang笔记集

    学习Golang了, 下面分享我的, 还有我收集的Golang的学习资料 我的基础笔记地址: https://github.com/zhuchangwu/go-study-notes 其他参考: Go ...

  8. Golang笔记整理--One day

    题外话: 很早就有整理学习笔记的想法,今天将想法付诸于行动,将Golang相关知识系统整理一遍,此分类为Golang学习笔记,最近开始学习这门语言的同学可以参考. 一 第一个Go程序: hello.g ...

  9. golang笔记——函数与方法

    如果你遇到没有函数体的函数声明,表示该函数不是以Go实现的. package math func Sin(x float64) float //implemented in assembly lang ...

随机推荐

  1. eclipse编辑jsp保存的时候特别卡解决办法

    今天eclipse用着用着的时候,每次编辑jsp页面快捷键保存的时候要等半天才保存好,特别的卡.搞的很蛋疼.上网搜了下有解决办法 Window -> Preference -> Gener ...

  2. diff/merge configuration in Team Foundation - common Command and Argument values - MSDN Blogs

    One of the extensibility points we have in Team Foundation V1 is that you can configure any other di ...

  3. Linux驱动开发概述

    原文出处:http://www.cnblogs.com/jacklu/p/4722563.html Linux设备分类 设备的驱动程序也要像裸机程序那样进行一些硬件操作,不同的是驱动程序需要" ...

  4. linux 文件系统结构及命令

    1.linux 文件系统结构 / 根目录 root |--mnt/ | |--sdcard/  挂载点 | |--usb0 | |--cdrom |--home | |--soft01 <- 用 ...

  5. windows下安装并配置mysql

    前言:前面三篇文章将django的环境搭建完后,还只能编写静态网页,如果要用到数据库编写动态网页,那么还需要数据库 本章讲解mysql5.6数据库的安装和配置,对于其他版本仅供参考,不一定试用!推荐使 ...

  6. 数据处理之PostgreSQL过程语言学习

    前段时间,公司更换新的PostgreSQL数据集市的系统过程中,自己下载了postgresqlAPI的pdf文件研究了一下PostgreSQL数据集市.发现使用PostgreSQL过程语言可以大大加快 ...

  7. JS--中奖广告浮动效果

    618要到了.要帮公司做一个简单的中奖号码的浮动.怎么玩了.其实只需要使用scrollHeight;scrollTop;offsetHeight这三个就可以实现了. 代码如下: <html> ...

  8. 【CSS】其他CSS属性和特性

    1. 设置元素的颜色和透明度 前面有介绍CSS颜色的各种用法,如 background-color属性.boder-color属性等.还有另外两个与颜色有关的属性. 1.1 设置前景色 color属性 ...

  9. decode()函数

    decode()函数简介: 主要作用:将查询结果翻译成其他值(即以其他形式表现出来,以下举例说明): 使用方法: Select decode(columnname,值1,翻译值1,值2,翻译值2,.. ...

  10. hdu[1711]number sequence

    Problem Description Given two sequences of numbers : a[1], a[2], ...... , a[N], and b[1], b[2], .... ...