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语言的数组存储结构是,首部存储数组长度,然后后面是实际数据。

  

最新文章

  1. SharePoint 2013 扩展查阅项功能
  2. CSS 和 JS 动画哪个更快
  3. Mysql 基于BinaryLog的复制
  4. TypeError: 'module' object is not callable cp fromhttp://blog.csdn.net/huang9012/article/details/17417133
  5. php之属性重载和方法重载
  6. 妙味课堂——HTML+CSS(第四课)(一)
  7. C++使用Json作为数据包装格式的通信
  8. 工作总结:MFC使用Windows自带打开对话框
  9. java面试核心基础(1)
  10. Hadoop大数据面试--Hadoop篇
  11. PHP 完整表单实例
  12. Javascript高级程序设计复习——第五章引用类型 【原创】
  13. javascript数据基本类型和引用数据类型区别
  14. 使用 CROSS APPLY 与 OUTER APPLY 连接查询
  15. C# 文件上传下载功能实现 文件管理引擎开发
  16. 创建http.Server实例,端口占用就换个端口
  17. 【模板】Splay
  18. React/anu实现弹出层2
  19. literallycanvas的简介
  20. 微信小程序 功能函数 openid本地和网络请求

热门文章

  1. Invalid layout param in a LinarLayout: layout_weight
  2. windows socket编程select模型使用
  3. Ubuntu安装Maven3
  4. [tem]树状数组
  5. 第27章 java I/O输入输出流
  6. 第32课 Qt中的文件操作
  7. Mui沉浸模式以及状态栏颜色改变
  8. 利用日期、经纬度求日出日落时间 C语言程序代码(zz)
  9. 前端数据可视化echarts.js使用指南
  10. logback 配置详解