1. 数组的声明

package main

import "fmt"

func main() {
// 数组:定长且元素类型一致的数据集合
// 方式一:先声明在赋值,声明时内存中已经开辟了空间
var nums [3]int // 内存中已开辟空间,初始化的值是0
nums[0] = 999
nums[1] = 666
nums[2] = 333
fmt.Println(&nums, nums)
fmt.Printf("%p\n", &nums) // 方式二:声明+赋值
names := [2]string{"ma", "ya"}
fmt.Println(names) // 方式三:声明+赋值+指定位置
var ages = [3]int{1: 22, 0: 87, 2: 99}
fmt.Println(ages) // 方式四:省略个数
str1 := [...]string{0: "hahah", 2: "hehad"}
fmt.Println(str1) // 声明指针类型的数组(指针类型),不会开辟内存初始化数组中的值,numbers=nil
var numbers *[3]int // 声明数组并初始化,返回的是指针类型的数组(指针类型)
numbers2 := new([3]int) fmt.Println(numbers, numbers2) }

  2. 数组内存管理

package main

import "fmt"

func main() {
nums := [3]int32{11, 22, 33}
fmt.Printf("数组的内存地址:%p\n", &nums)
fmt.Printf("数组的第一个元素的内存地址:%p\n", &nums[0])
fmt.Printf("数组的第一个元素的内存地址:%p\n", &nums[1])
fmt.Printf("数组的第一个元素的内存地址:%p\n", &nums[2]) names := [2]string{"沛齐", "alex"}
fmt.Printf("字符串数组的内存地址:%p\n", &names)
fmt.Printf("字符串数组的内存地址:%p\n", &names[0])
fmt.Printf("字符串数组的内存地址:%p\n", &names[1])
}

  

3. 数组的可变和拷贝

package main

import "fmt"

func main() {
// 数组的可变和拷贝
// 可变,数组的元素可以被更改,长度和类型都不可以被修改
names := [2]string{"武沛齐", "alex"}
names[1] = "袁浩"
fmt.Println(names)
// 注意:字符串不可以被修改 // 拷贝,变量赋值时重新拷贝一份
name1 := [2]string{"武沛齐", "alex"}
name2 := name1
name1[1] = "袁浩"
fmt.Println(name1, name2)
}

  

4. 数组的长度、索引、切片、循环

package main

import "fmt"

func main() {
// 长度、索引、切片、循环
name := [2]string{"武沛齐", "alex"} // 1. 长度
fmt.Println(len(name)) // 2. 索引
fmt.Println(name[0])
name[0] = "eric"
fmt.Println(name) // 3. 切片
nums := [3]int{11, 22, 33}
data := nums[:2] // 获取 0<=下标<2
fmt.Println(data) // 4. 手动循环
for i := 0; i < len(nums); i++ {
fmt.Println(i, nums[i])
} // 5. for range 循环
for index, item := range nums {
fmt.Println(index, item)
}
for index := range nums {
fmt.Println(index)
}
for _, item := range nums {
fmt.Println(item)
} }

  5. 数组的嵌套

package main

import "fmt"

func main() {
// 数组嵌套
var nestData [2][3]int
nestData[0] = [3]int{11, 22, 33}
nestData[1][1] = 88
fmt.Println(nestData) nestData2 := [2][3]int{{11, 22, 33}, {4, 5, 6}}
fmt.Println(nestData2) }

  

golang中的数组的更多相关文章

  1. Golang中的Slice与数组

    1.Golang中的数组 数组是一种具有固定长度的基本数据结构,在golang中与C语言一样数组一旦创建了它的长度就不允许改变,数组的空余位置用0填补,不允许数组越界. 数组的一些基本操作: 1.创建 ...

  2. golang中数组指针与指针数组的区别实现

      指针数组和数组的指针,指的是两个不同的东西. 指针数组是有指针组成的数组,数组的指针是一个数组的指针. package main import "fmt" const MAX ...

  3. golang中的reflect包用法

    最近在写一个自动生成api文档的功能,用到了reflect包来给结构体赋值,给空数组新增一个元素,这样只要定义一个input结构体和一个output的结构体,并填写一些相关tag信息,就能使用程序来生 ...

  4. 说说不知道的Golang中参数传递

    本文由云+社区发表 导言 几乎每一个C++开发人员,都被面试过有关于函数参数是值传递还是引用传递的问题,其实不止于C++,任何一个语言中,我们都需要关心函数在参数传递时的行为.在golang中存在着m ...

  5. GoLang基础数据类型--->数组(array)详解

    GoLang基础数据类型--->数组(array)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Golang数组简介 数组是Go语言编程中最常用的数据结构之一.顾名 ...

  6. golang中的字符串拼接

    go语言中支持的字符串拼接的方法有很多种,这里就来罗列一下 常用的字符串拼接方法 1.最常用的方法肯定是 + 连接两个字符串.这与python类似,不过由于golang中的字符串是不可变的类型,因此用 ...

  7. [转]Golang 中使用 JSON 的小技巧

    taowen是json-iterator的作者. 序列化和反序列化需要处理JSON和struct的关系,其中会用到一些技巧. 原文 Golang 中使用 JSON 的小技巧是他的经验之谈,介绍了一些s ...

  8. Golang教程:数组和切片

    数组 数组是类型相同的元素的集合.例如,整数 5, 8, 9, 79, 76 的集合就构成了一个数组.Go不允许在数组中混合使用不同类型的元素(比如整数和字符串). 声明 var variable_n ...

  9. 在Golang中使用C语言代码实例

    转自:http://www.jb51.net/article/56720.htm cgo 使得在 Golang 中可以使用 C 代码. Hello World 为了有一个较为直观的了解,我们来看一个简 ...

随机推荐

  1. 【蓝桥杯】第十二届蓝桥杯砝码称重(Python题解)

    @ 目录 题目 [80分] 思路 知识点 代码 题目 [80分] 你有一架天平和N个砝码,这N个砝码重量依次是W1,W2,--,WN请你计算一共可以称出多少种不同的重量? 注意砝码可以放在天平两边. ...

  2. Kafka Eagle分布式模式

    1.概述 最近有同学留言,Kafka Eagle的分布式模式功能怎么使用,如何部署安装?今天笔者就为大家来详细介绍一下Kafka Eagle的分布式模式功能的安装和使用. 2.内容 首先,这里我们需要 ...

  3. 【LeetCode】160. Intersection of Two Linked Lists 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 双指针 栈 日期 题目地址:https://leet ...

  4. CHARINDEX 用法

    CHARINDEX 返回字符串中指定表达式的起始位置. 语法 CHARINDEX ( expression1 , expression2 [ , start_location ] ) 参数 expre ...

  5. Robust Pre-Training by Adversarial Contrastive Learning

    目录 概 主要内容 代码 Jiang Z., Chen T., Chen T. & Wang Z. Robust Pre-Training by Adversarial Contrastive ...

  6. Swoole 中使用 TCP 异步服务器、TCP 协程服务器、TCP 同步客户端、TCP 协程客户端

    TCP 异步风格服务器 异步风格服务器通过监听事件的方式来编写程序.当对应的事件发生时底层会主动回调指定的函数. 由于默认开启协程化,在回调函数内部会自动创建协程,遇到 IO 会产生协程调度,异步风格 ...

  7. MongoDB_数据模型&数据类型(四)

    数据模块 传统的关系型数据库需要对表结构进行预先定义和严格的要求,而这样的严格要求,导致了处理数据的过程更加烦琐,甚至降低了执行效率. 在数据量达到一定规模的情况下,传统关系型数据库反应迟钝,想解决这 ...

  8. JMeter_用户自定义变量

    在实际测试过程中,我们经常会碰到脚本开发时与测试执行时的服务地址不一样的情况,为了方便,我们会把访问地址参数化,当访问地址变化了,我们只需要把参数对应的值改动一下就可以了. 一.添加用户自定义变量元件 ...

  9. 查询Oracle数据库的字符集

    How do you check the Oracle database character set? SQL> select value from nls_database_parameter ...

  10. Word2010制作饭店活动宣传单

    原文链接: https://www.toutiao.com/i6492754127343321613/ 打开Word文档,选择"页面布局"选项卡."页面背景"功 ...