Go语言基础切片的创建及初始化示例详解

Go语言基础切片的创建及初始化示例详解

什么是切片

切片是 Go 语言中一个重要的数据类型,它与数组非常相似,但是切片的长度是可以动态变化的。切片是由指向底层数组的指针、长度和容量三部分组成的。

切片的创建

使用 make 函数创建

make 函数是 Go 语言中用于创建切片、字典和信道等动态数据结构的内置函数。make 函数的第一个参数表示需要创建的类型,第二个参数表示切片的长度,第三个参数表示切片的容量。

示例代码:

package main

import "fmt"

func main() {
    slice := make([]int, 5, 10)
    fmt.Printf("len=%d cap=%d slice=%v\n", len(slice), cap(slice), slice)
}

输出:

len=5 cap=10 slice=[0 0 0 0 0]

直接创建切片

切片也可以直接通过对数组或其他切片进行切片操作来创建。

示例代码:

package main

import "fmt"

func main() {
    arr := [10]int{1,2,3,4,5,6,7,8,9,0}
    slice1 := arr[2:7]
    slice2 := slice1[1:4]
    fmt.Println(slice1)
    fmt.Println(slice2)
}

输出:

[3 4 5 6 7]
[4 5 6]

切片的初始化

使用字面量初始化

切片可以通过字面量进行初始化。切片字面量的格式和数组字面量的格式相似,只不过没有固定的长度。切片字面量的语法格式为 []T{a, b, c, ...}

示例代码:

package main

import "fmt"

func main() {
    slice := []int{1, 2, 3, 4, 5}
    fmt.Printf("len=%d cap=%d slice=%v\n", len(slice), cap(slice), slice)
}

输出:

len=5 cap=5 slice=[1 2 3 4 5]

使用 for 循环初始化

切片也可以通过 for 循环来进行初始化。

示例代码:

package main

import "fmt"

func main() {
    slice := make([]int, 5)
    for i:=0; i<5; i++ {
        slice[i] = i+1
    }
    fmt.Printf("len=%d cap=%d slice=%v\n", len(slice), cap(slice), slice)
}

输出:

len=5 cap=5 slice=[1 2 3 4 5]

以上是切片的创建及初始化的两种常见方式,希望可以对初学者有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Go语言基础切片的创建及初始化示例详解 - Python技术站

(0)
上一篇 2023年6月20日
下一篇 2023年6月20日

相关文章

  • VSCode修改编辑器配色? vscode代码配色方案介绍

    VSCode修改编辑器配色攻略 1. 选择配色方案 VSCode提供了多种配色方案供用户选择。要修改编辑器的配色,首先需要选择一个合适的配色方案。以下是两个示例配色方案的介绍: a. Monokai Monokai是一种非常受欢迎的配色方案,具有鲜明的颜色和高对比度。要使用Monokai配色方案,请按照以下步骤进行操作: 打开VSCode编辑器。 点击左侧的…

    other 2023年8月20日
    00
  • FTP上传工具哪个好用?2018年六款最常用的的FTP上传工具推荐

    FTP上传工具哪个好用?2018年六款最常用的的FTP上传工具推荐 什么是FTP上传工具? FTP上传工具是一种可以用来将文件上传至服务器的工具,其使用的方式为用户将需要上传的文件本地编辑保存好后使用FTP上传工具将其上传至服务器。 FTP上传工具有哪些? 2018年的FTP上传工具主要有以下六款: FileZilla WinSCP FireFTP Cybe…

    other 2023年6月27日
    00
  • c++知识点总结(二)

    C++知识点总结(二) 定义 C++是一种通用的、高效的编程语言,广泛应用于系统软件、游戏开发、入式系统、科学计算等领域。本攻略总结了C++中的一些重要知识点,包括指针、引用内存管理、异常处理、STL等。 知识点总结 指针 指是C++中的一个重要念,它是一个变量,存储了一个内存地址。指针可以用来访问内存中的数据,也可以用来动态分配内存。以下是指针的一些重要知…

    other 2023年5月8日
    00
  • C++面试基础之static关键字详解

    C++面试基础之static关键字详解 什么是static关键字 在C++中,static是一个关键字,用于表示类成员或者函数是静态的。静态成员是指属于类的成员,在类被加载时已经分配了内存,并不依赖于实例,而是共享内存的。静态成员被所有类的对象所共享,也可以通过类名直接访问。 static关键字的用法和作用 静态成员变量 声明静态成员变量时需要在前面加上st…

    other 2023年6月26日
    00
  • 文件夹取其名称前两位重命名的批处理代码

    以下是关于如何用批处理代码重命名文件夹的攻略。 步骤一:打开Notepad或其他编辑器 首先,打开一个文本编辑器,例如Notepad,新建一个文件。请注意,您必须以管理员身份运行Notepad,这是因为你需要对文件夹进行重命名,这需要一些管理员权限。 步骤二:编写批处理代码 以下是编写批处理代码的步骤: 首先,你需要输入 “@echo off”(不带引号),…

    other 2023年6月26日
    00
  • 【java】对象赋值给另一个对象

    在Java中,对象赋值给另一个对象可以通过引用传递来实现。以下是一个完整攻略,介绍了Java中对象赋值的过程和示例。 步骤1:创建一个Java类 首先我们需要创建一个Java类,用于演示对象赋值的过程。以下是一个示例: public class Person { private String name; private int age; public Per…

    other 2023年5月6日
    00
  • PHP中通过ADO调用Access数据库的方法测试不通过

    PHP中通过ADO调用Access数据库的方法测试不通过攻略 1. 安装ADO扩展 首先,确保您的PHP环境已经安装了ADO扩展。您可以通过以下步骤安装ADO扩展: 下载ADO扩展的DLL文件,可以从官方网站或其他可信来源获取。 将DLL文件复制到PHP的扩展目录中。 在PHP的配置文件php.ini中添加ADO扩展的配置,例如:extension=php_…

    other 2023年10月17日
    00
  • Win10预览版19555.1001更新后开机绿屏怎么办?

    当用户在更新Win10预览版19555.1001后遇到了开机出现绿屏的问题时,可以按照以下攻略来解决: 1. 尝试卸载最新安装的软件 有时候,开机绿屏问题是由于最新安装的软件冲突导致的。因此,可以尝试卸载最新安装的软件,看看是否能够解决问题。 例如,用户最近安装了一个名为ABC的应用程序,他可以打开“设置”>“应用”>“应用和功能”界面,在清单中…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部