【Go语言】常用变量类型的创建

这篇具有很好参考价值的文章主要介绍了【Go语言】常用变量类型的创建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 切片slice

在Go语言中,创建切片有两种常见的方式:使用 var 声明空切片和使用 make 函数。

  • 使用 var 声明空切片:
var s []int
s = append(s, 100)

这种方式会声明一个空的切片,初始时没有分配底层数组。你可以使用 append 函数向空切片中添加元素,切片会根据需要自动扩容。

  • 使用 make 函数创建切片:
s := make([]int, 0)

这种方式使用 make 函数创建了一个初始长度为0的切片,并分配了对应的底层数组。你可以使用 append 函数向切片中添加元素,切片会在需要时自动扩容。
区别:
使用 var 声明空切片时,切片的底层数组在初始时不会被分配。只有在使用 append 函数添加元素时,才会根据需要动态分配底层数组。
使用 make 函数创建切片时,切片的底层数组会在初始时被分配。通过 make 函数创建的切片已经具有了初始的长度和容量,可以直接使用 append 函数添加元素。

2. 映射map

在 Go 语言中,创建一个 map 类型的变量有两种常见的方式:使用 make 函数和直接声明。这两种方式有一些区别:

  • 使用 make 函数创建 map:
m := make(map[keyType]valueType)

这种方式使用 make 函数来创建一个空的 map,并分配了对应的内存空间。你可以在后续的代码中使用赋值操作符(=)来添加键值对到 map 中。

  • 直接声明 map 变量:
var m map[keyType]valueType

这种方式只是声明了一个 map 类型的变量,但没有分配内存空间。在这种情况下,map 变量是一个 nil 值,不能直接使用。你需要使用 make 函数来分配内存空间,然后才能向 map 中添加键值对。
以下是两种方式的示例:

  • 使用 make 函数创建 map:
m := make(map[string]int)
m["a"] = 1
m["b"] = 2
fmt.Println(m) // 输出: map[a:1 b:2]
  • 直接声明 map 变量:
var m map[string]int
m = make(map[string]int)
m["a"] = 1
m["b"] = 2
fmt.Println(m) // 输出: map[a:1 b:2]

需要注意的是,无论是使用 make 函数还是直接声明 map 变量,都需要在使用前进行初始化。否则,如果直接使用一个空的 map(nil 值),会导致运行时错误。

3. 通道channel

在 Go 语言中,可以使用声明定义通道变量,但需要在使用前通过 make 函数进行初始化,否则会导致运行时错误。
以下是通过声明定义通道变量并使用的示例:

var ch chan int // 声明一个通道变量

// 初始化通道
ch = make(chan int)

// 使用通道进行发送和接收操作
go func() {
    ch <- 42 // 发送数据到通道
}()
val := <-ch // 从通道接收数据
fmt.Println(val) // 输出: 42

在上述示例中,我们首先使用 var 关键字声明了一个名为 ch 的通道变量,然后使用 make 函数对其进行初始化。在后续的代码中,我们可以使用通道进行发送和接收操作。
需要注意的是,如果在使用通道之前没有进行初始化,即没有使用 make 函数对其进行初始化,那么在尝试发送或接收数据时,会导致运行时错误。因此,为了安全起见,在使用通道之前应该始终使用 make 函数进行初始化。文章来源地址https://www.toymoban.com/news/detail-821170.html

到了这里,关于【Go语言】常用变量类型的创建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【JAVA】数据类型与变量(主要学习与c语言不同之处)

    ✅作者简介:大家好,我是橘橙黄又青,一个想要与大家共同进步的男人😉😉 🍎个人主页:橘橙黄又青-CSDN博客 目标: 1. 字面常量 2. 数据类型 3. 变量 在上节课 HelloWorld 程序中, System.Out.println(\\\"Hello World\\\") ; 语句,不论程序何时运行,输出的都是 Hello World,其实 \\\"Hello Wo

    2024年03月28日
    浏览(36)
  • 【go语言学习笔记】05 Go 语言实战

    在做项目开发的时候,要善于借助已经有的轮子,让自己的开发更有效率,也更容易实现。 1. RESTful API 定义 RESTful API 是一套规范,它可以规范如何对服务器上的资源进行操作。和 RESTful API 和密不可分的是 HTTP Method。 1.1 HTTP Method HTTP Method最常见的就是POST和GET,其实最早在

    2024年02月13日
    浏览(35)
  • 6.Go语言学习笔记-结合chatGPT辅助学习Go语言底层原理

    1、Go版本 2、汇编基础 推荐阅读:GO汇编语言简介 推荐阅读:A Quick Guide to Go\\\'s Assembler - The Go Programming Language 精简指令集 数据传输: MOV/LEA 跳转指令: CMP/TEST/JMP/JCC 栈指令: PUSH/POP 函数调用指令: CALL/RET 算术指令: ADD/SUB/MUL/DIV 逻辑指令: AND/OR/XOR/NOT 移位指令: SHL/SHR JCC有条件跳转: JE

    2024年02月04日
    浏览(34)
  • 【go语言学习笔记】04 Go 语言工程管理

    1. 单元测试 单元测试是保证代码质量的好方法,但单元测试也不是万能的,使用它可以降低 Bug 率,但也不要完全依赖。除了单元测试外,还可以辅以 Code Review、人工测试等手段更好地保证代码质量。 1.1 定义 顾名思义,单元测试强调的是对单元进行测试。在开发中,一个单

    2024年02月13日
    浏览(32)
  • 【Golang入门教程】Go语言变量的初始化

    强烈推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站: 人工智能 推荐一个个人工作,日常中比较常用的人工智能工具,无需魔法,忍不住分享一下给大家。点击跳转到网站: 人工智能工具 引言 在Go语言中,变量

    2024年04月17日
    浏览(58)
  • 【Terraform学习】保护敏感变量(Terraform配置语言学习)

    创建 EC2 IAM 角色 导航到 IAM 在 左侧菜单 中,单击 角色  。单击 创建角色 该按钮以 创建新的 IAM 角色 。 在创建角色部分,为角色选择 可信实体类型 : AWS 服务 使用案例:EC2     单击 下一步 添加权限:现在,您可以看到 策略列表 。按名称 AdministratorAccess 搜索权限并添加。

    2024年02月13日
    浏览(27)
  • go语言学习计划。

    第1周:Go语言概述与环境搭建 内容 :了解Go语言的历史、特点和应用场景。安装Go环境,配置工作区。 实践 :编写第一个Go程序,了解Go的编译运行流程。 第2周:基本语法与数据类型 内容 :学习基本数据类型(整型、浮点型、布尔型、字符串)和基本语法。 实践 :编写简

    2024年01月23日
    浏览(24)
  • Go语言学习笔记

    注:安装教程 注:上一篇笔记 注:下一篇笔记 2.6、流程控制 2.6.1、条件语句 2.6.2、选择语句 2.6.3、循环语句 2.6.4、跳转语句 goto语句跳转到本函数内的某个标签 2.7、函数 2.7.1、函数定义 函数构成代码执行的逻辑结构。函数的基本组成为:func、函数名、参数列表、返回值

    2024年02月06日
    浏览(36)
  • go语言学习——9

    前言:统计1~90000000数字中,哪些是素数? 使用循环,很慢 使用并发或者并行的方式,将任务分配给多个goroutine去完成,就会使用到goroutine 进程和线程 进程 是程序在操作系统中的一次执行过程,是 系统进行资源分配和调度 的基本单位 线程 是进程的一个执行实例,是 程序

    2024年02月08日
    浏览(36)
  • 【Terraform学习】Terraform配置变量(Terraform配置语言学习)

    创建 EC2 IAM 角色 导航到 IAM 在 左侧菜单 中,单击 角色  。单击 创建角色 该按钮以 创建新的 IAM 角色 。 在创建角色部分,为角色选择 可信实体类型 : AWS 服务 使用案例:EC2     单击 下一步 添加权限:现在,您可以看到 策略列表 。按名称 AdministratorAccess 搜索权限并添加。

    2024年02月15日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包