iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Go语言的数组怎么用
  • 356
分享到

Go语言的数组怎么用

2023-06-02 11:06:35 356人浏览 薄情痞子
摘要

本篇内容介绍了“Go语言的数组怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!数组变量的定义我们先试一下只申明类型,不赋初值。这时编译器

本篇内容介绍了“Go语言的数组怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

数组变量的定义

我们先试一下只申明类型,不赋初值。这时编译器会给数组默认赋上「零值」。数组的零值就是所有内部元素的零值。

package main

import "fmt"

func main() {
    var a [9]int
    fmt.Println(a)
}

------------
[0 0 0 0 0 0 0 0 0]


下面我们看看另外三种变量定义的形式, 效果都是一样的

package main

import "fmt"

func main() {
    var a = [9]int{1, 2, 3, 4, 5, 6, 7, 8, 9}
    var b [10]int = [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
    c := [8]int{1, 2, 3, 4, 5, 6, 7, 8}
    fmt.Println(a)
    fmt.Println(b)
    fmt.Println(c)
}

---------------------
[1 2 3 4 5 6 7 8 9]
[1 2 3 4 5 6 7 8 9 10]
[1 2 3 4 5 6 7 8]

数组的访问

接下来我们使用下标来简单操作一下数组,这个数组里存的是数字的平方值

package main

import "fmt"

func main() {
    var squares [9]int
    for i := 0; i < len(squares); i++ {
        squares[i] = (i + 1) * (i + 1)
    }
    fmt.Println(squares)
}

--------------------
[1 4 9 16 25 36 49 64 81]

数组的下标越界检查(高阶知识)

上面的代码中我们注意到可以使用内置函数 len() 来直接获取数组的长度。数组的长度是编译期确定的,当我们使用 len() 函数访问数组的长度属性时,编译器在背后偷偷把它替换成了整数值。

package main

import "fmt"

func main() {
    var a = [5]int{1,2,3,4,5}
    a[101] = 255
    fmt.Println(a)
}

-----
./main.go:7:3: invalid array index 101 (out of bounds for 5-element array)


上面的代码运行结果说明了 Go 语言会对数组访问下标越界进行编译器检查。有一个重要的问题是,如果下标是一个变量,Go 是如何检查下标越界呢?变量需要在运行时才可以决定是否越界,Go 是如何办到的呢?

package main

import "fmt"

func main() {
    var a = [5]int{1,2,3,4,5}
    var b = 101
    a[b] = 255
    fmt.Println(a)
}

------------
panic: runtime error: index out of range

goroutine 1 [running]:
main.main()
    /Users/qianwp/go/src/GitHub.com/pyloque/practice/main.go:8 +0x3D
exit status 2


答案是 Go 会在编译后的代码中插入下标越界检查的逻辑,所以数组的下标访问效率是要打折扣的,比不得 C 语言的数组访问性能。

数组赋值

同样的子元素类型并且是同样长度的数组才可以相互赋值,否则就是不同的数组类型,不能赋值。数组的赋值本质上是一种浅拷贝操作,赋值的两个数组变量的值不会共享。

package main

import "fmt"

func main() {
    var a = [9]int{1, 2, 3, 4, 5, 6, 7, 8, 9}
    var b [9]int
    b = a
    a[0] = 12345
    fmt.Println(a)
    fmt.Println(b)
}

--------------------------
[12345 2 3 4 5 6 7 8 9]
[1 2 3 4 5 6 7 8 9]


从上面代码的运行结果中可以看出赋值后两个数组并没有共享内部元素。如果数组的长度很大,那么拷贝操作是有一定的开销的,使用的时候一定需要注意。下面我们尝试使用不同长度的数组赋值会有什么结果

package main

import "fmt"

func main() {
    var a = [9]int{1, 2, 3, 4, 5, 6, 7, 8, 9}
    var b [10]int
    b = a
    fmt.Println(b)
}

--------------------------
./main.go:8:4: cannot use a (type [9]int) as type [10]int in assignment


可以看出不同长度的数组之间赋值是禁止的,因为它们属于不同的类型。

数组的遍历

数组除了可以使用下标进行遍历之外,还可以使用 range 关键字来遍历,range 遍历提供了下面两种形式。

package main

import "fmt"

func main() {
    var a = [5]int{1,2,3,4,5}
    for index := range a {
  fmt.Println(index, a[index])
 }
 for index, value := range a {
        fmt.Println(index, value)
    }
}

------------
0 1
1 2
2 3
3 4
4 5
0 1
1 2
2 3
3 4
4 5

“Go语言的数组怎么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Go语言的数组怎么用

本文链接: https://www.lsjlt.com/news/229862.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Go语言的数组怎么用
    本篇内容介绍了“Go语言的数组怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!数组变量的定义我们先试一下只申明类型,不赋初值。这时编译器...
    99+
    2023-06-02
  • Go语言中数组怎么用
    这篇文章主要介绍Go语言中数组怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!概述固定长度,数组声明后长度便不能再修改只能存储一种特定类型元素的序列语法编号方式代码示例1直接声明var arr [3]int2ma...
    99+
    2023-06-25
  • go语言数组指针怎么引用
    在Go语言中,数组是值类型,当数组作为参数传递给函数时,会进行值拷贝。如果需要在函数中修改数组内容并保持修改后的结果,可以使用数组指...
    99+
    2023-10-25
    go语言
  • Go语言中怎么遍历数组
    在Go语言中,可以使用for循环来遍历数组。例如: package main import "fmt" fu...
    99+
    2024-04-02
  • go语言数组是什么
    Go语言中的数组是一种复合数据类型,用于存储固定大小、相同类型的元素序列。数组是一种非常基础的数据结构,在程序设计中具有广泛的应用场景。详细介绍:在Go语言中,数组的长度是一个非常重要的概念。数组决定了数组可以容纳的元素的数量,也决定了数组...
    99+
    2023-12-12
    go语言 Golang go语言数组
  • Go语言的数组如何使用
    这篇文章主要讲解了“Go语言的数组如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Go语言的数组如何使用”吧!什么是数组什么是数组?数组是有固定长度的相同数据类型元素的集合, 如下图所...
    99+
    2023-07-05
  • 使用go语言怎么实现数组比较
    这篇文章给大家介绍使用go语言怎么实现数组比较,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。比较两个数组是否相等如果两个数组类型相同(包括数组的长度,数组中元素的类型)的情况下,我们可以直接通过较运算符(==和!=)来...
    99+
    2023-06-15
  • 不同语言中数组与Go语言数组的差异
    go 语言数组与其他语言数组的不同之处:内存分配: go 数组在运行时分配内存,大小可重新分配,而其他语言数组在编译时分配并固定大小。类型安全: go 数组只持有特定类型元素,避免运行时...
    99+
    2024-04-11
    go 数组 go语言 c++
  • go语言数组怎么实现队列
    在Go语言中,可以使用切片来实现队列。 首先,定义一个结构体来表示队列: type Queue struct { items...
    99+
    2024-02-29
    go语言
  • go语言数组指针怎么赋值
    在Go语言中,可以通过以下两种方式来赋值数组指针: 使用 `&` 运算符获取数组的地址,然后将该地址赋值给指针变量。 packa...
    99+
    2023-10-25
    go语言
  • 使用go语言怎么查找两个数组的异同
    这篇文章给大家介绍使用go语言怎么查找两个数组的异同,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。输入是两个数组,一个旧数组一个新数组,要求获取新数组相对旧数组所有新增和删除的元素,例如:输入:arr_old:&nbs...
    99+
    2023-06-15
  • Go语言字符串怎么转为数组
    转换方法:1、用Fields()按空格分割字符串转为数组,语法“arr := strings.Fields(s)”;2、用Split()按字符串分割字符串,语法“arr := strings.Split(s,sep)”;3、用FieldsF...
    99+
    2023-05-14
    go语言 Golang
  • go语言如何实现数组的调用
    Go语言中可以使用索引来调用数组中的元素。索引从0开始,依次递增。以下是一个示例代码:```gopackage mainimport...
    99+
    2023-10-12
    Go语言
  • Go语言中数组,切片和映射怎么使用
    这篇文章主要讲解了“Go语言中数组,切片和映射怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Go语言中数组,切片和映射怎么使用”吧!Arrays (数组), Slices (切片) ...
    99+
    2023-07-02
  • Go语言中的函数怎么调用
    本篇内容介绍了“Go语言中的函数怎么调用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.函数的声明定义//func关键字//getStud...
    99+
    2023-07-02
  • go语言二维数组切片怎么定义
    在Go语言中,可以使用make函数来创建二维切片。具体的定义方式如下: slice := make([][]int, numRows...
    99+
    2023-10-21
    go语言
  • go语言怎么调用函数
    本文小编为大家详细介绍“go语言怎么调用函数”,内容详细,步骤清晰,细节处理妥当,希望这篇“go语言怎么调用函数”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在go语言中,定义了函数之后,我们可以通过“函数名()...
    99+
    2023-07-04
  • Go 语言中怎么实现数组与切片
    本篇文章为大家展示了Go 语言中怎么实现数组与切片,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。数组数组是一组类型相同的,长度固定的,按数字编号排列的数据序列。由于 go  语言中,数组的...
    99+
    2023-06-15
  • 怎么在Go语言中移除数组元素
    本篇内容介绍了“怎么在Go语言中移除数组元素”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在 Go 语言中,数组通常被定义为固定长度的数据结...
    99+
    2023-07-05
  • 如何在Go语言中使用数组?
    Go语言是一种高效、简洁的编程语言,它具有很多强大的特性,其中之一就是数组。数组是一种非常基础的数据结构,它可以让我们存储多个相同类型的值,并且可以通过下标来访问它们。在本文中,我们将详细介绍如何在Go语言中使用数组。 一、声明数组 在Go...
    99+
    2023-07-19
    关键字 框架 数组
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作