Go语言中数组的基本用法演示

 更新时间:2015年10月28日 14:36:19   投稿:goldensun  
这篇文章主要介绍了Go语言中数组的基本用法演示,包括一个冒泡排序算法的简单实现,需要的朋友可以参考下

首先来看一下如何声明数组:

复制代码 代码如下:

package main

import "fmt"

var arr [2]int //申明一个数组

func main() {
 arr[0] = 1 //数组赋值
 fmt.Println(arr)
 arrtest := [3]int{1, 2, 3} //数组的另一种申明方式
 fmt.Println(arrtest)
 a := [...]int{1, 2} //[...]自动识别数组的长度
 fmt.Println(a)
 fmt.Println(len(a))//输出数组的长度
}


go语言可以自动计算数组的长度,譬如你知道数组有几个可以如下申明
复制代码 代码如下:

a:=[...]int{1,2,3,45}

指针数组
复制代码 代码如下:

a:=[3]int{1,2,3}
var p * [3]int = &a //这种是指针数组 我们看到可以直接输出指向数组的指针
x , y :=1 ,3
a := [...]*int{&x ,&y}
str.Println(a) //输出这样[0xc080000068 0xc080000070]的地址 这就是数组指针

可以用new关键字申明
复制代码 代码如下:

p := new([10]int)
fmt.Println(p)  //&[0 0 0 0 0 0 0 0 0 0] 输出一个指针

多维数组跟其他语言一样
复制代码 代码如下:

c := [3][2]int{{1: 2}, {2, 1}, {2, 2}}
fmt.Println(c) //输出[[0 2] [2 1] [2 2]]

下边是slice的申明和使用其实这就是一种动态的数组

复制代码 代码如下:

package main

import "fmt"

var arr [2]int //申明一个数组

func main() {
 arr[0] = 1 //数组赋值
 fmt.Println(arr)
 arrtest := [3]int{1, 2, 3} //数组的另一种申明方式
 fmt.Println(arrtest)
 a := [...]int{1, 2} //[...]自动识别数组的长度
 fmt.Println(a)
 fmt.Println(len(a))//输出数组的长度
}

来看一下冒泡算法之go语言版

复制代码 代码如下:

package main

import "fmt"

func main() {
 a := [...]int{3, 2, 5, 8, 6}
 fmt.Println(a)
 num := len(a)
 for i := 0; i < num; i++ {
  for j := i + 1; j < num; j++ {
   if a[i] < a[j] {
    temp := a[i]
    a[i] = a[j]
    a[j] = temp
   }
  }
 }
 fmt.Println(a)
}

相关文章

  • golang中defer的基本使用教程

    golang中defer的基本使用教程

    go语言中defer可以完成延迟功能,当前函数执行完成后再执行defer的代码块,下面这篇文章主要给大家介绍了关于golang中defer基本使用的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • go sync Waitgroup数据结构实现基本操作详解

    go sync Waitgroup数据结构实现基本操作详解

    这篇文章主要为大家介绍了go sync Waitgroup数据结构实现基本操作详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • go如何删除字符串中的部分字符

    go如何删除字符串中的部分字符

    这篇文章主要介绍了go删除字符串中的部分字符操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • Golang中的panic之避免和处理程序中的异常情况

    Golang中的panic之避免和处理程序中的异常情况

    Golang中的panic是一种异常处理机制,可以在程序出现异常情况时终止程序并打印错误信息。为了避免panic对程序的影响,开发者可以采用一系列技巧,如defer+recover、编写可重入的代码、使用错误返回值等。这些技巧可以帮助开发者优雅地处理程序中的异常情况
    2023-04-04
  • Go env命令如何配置go环境变量

    Go env命令如何配置go环境变量

    这篇文章主要为大家介绍了Go env如何配置go环境变量的命令详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • Go语言中转换JSON数据简单例子

    Go语言中转换JSON数据简单例子

    这篇文章主要介绍了Go语言中转换JSON数据简单例子,本文先定义了一个结构体,然后把JSON绑定到结构体上实现读取,需要的朋友可以参考下
    2014-10-10
  • 如何在 Go语言中使用日志包

    如何在 Go语言中使用日志包

    这篇文章主要介绍了如何在 Go语言中使用日志包,日志文件就是一种快速找到这些 bug,更好地了解程序工作状态的方法,下文基于go语言介绍该详细需要的小伙伴可以参考一下
    2022-04-04
  • 使用go的interface案例实现多态范式操作

    使用go的interface案例实现多态范式操作

    这篇文章主要介绍了使用go的interface案例实现多态范式操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • GoLang nil与interface的空指针深入分析

    GoLang nil与interface的空指针深入分析

    Go语言中任何类型在未初始化时都对应一个零值:布尔类型是false,整型是0,字符串是"",而指针、函数、interface、slice、channel和map的零值都是nil
    2022-12-12
  • Golang中文字符串截取函数实现原理

    Golang中文字符串截取函数实现原理

    在golang中可以通过切片截取一个数组或字符串,但是当截取的字符串是中文时,可能会出现问题,下面我们来自定义个函数解决Golang中文字符串截取问题
    2018-03-03

最新评论