Go学习:多重赋值与匿名变量

1. 变量的多重赋值

        1.1 基本语法格式      

        go语言中,可以将多个赋值语句 合并成 一句,比如:

a := 10
b := 20
c := 30

//a,b,c三个变量的赋值语句可以简练成以下格式

a, b, c := 10, 20, 30

       1.2 交换变量值      

        当需要交换两个变量的值时,在传统方法中,需要引入中间变量temp,但是,在go语言中,变量值的交换可以简化为以下格式:

i, j = j, i

        该语法格式对 i,j 两个变量的值进行了交换,j 的值赋给了 i,i 的值赋给了 j。 

例如以下代码:

package main //必须有main包

import "fmt"

func main() {
	// a := 10
	// b := 20
	// c := 30

	a, b := 20, 30

	fmt.Println("1.传统方法:")
	fmt.Printf("a = %d, b = %d\n", a, b)

	/*交换两个变量的值*/

	//1. 传统方法: 引入中间变量 tmp

	var tmp int
	tmp = a
	a = b
	b = tmp
	fmt.Printf("a = %d, b = %d\n", a, b)

	//2. go语言中语法 

	// i := 10
	// j := 20
	i, j := 10, 20 //将上面两个赋值语句 合并成 一句

    fmt.Println("2. go语言中语法:")
	fmt.Printf("交换前:i = %d, j = %d\n", i, j)

	i, j = j, i
	fmt.Printf("交换后:i = %d, j = %d\n", i, j)

}

2. 匿名变量的使用

        _ :代表匿名变量,可以丢弃数据不处理,

        注:_匿名变量配合函数返回值使用,才有优势

package main //必须有main包

import "fmt"

// go函数可以返回多个返回值
func test() (a, b, c int) {
	return 1, 2, 3
}

func main() {
	var tmp int
    i, j := 10, 20

	//匿名变量
	i = 10
	j = 20
	// _ :代表匿名变量,丢弃数据不处理, _匿名变量配合函数返回值使用,才有优势
	tmp, _ = i, j
	fmt.Println("tmp = ", tmp)

	var c, d, e int
	c, d, e = test() //return 1, 2, 3
	fmt.Printf("c = %d, d = %d, e = %d\n", c, d, e)

	//只需要某一个值
	_, d, _ = test() //return 1, 2, 3
	fmt.Printf("d = %d\n", d)

	//需要某两个值
	_, d, e = test() //return 1, 2, 3
	fmt.Printf("d = %d, e = %d\n", d, e)

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/951241.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ArkUI-应用数据持久化

应用数据持久化,是指应用将内存中的数据通过文件或数据库的形式保存到设备上。内存中的数据形态通常是任意的数据结构或数据对象,存储介质上的数据形态可能是文本、数据库、二进制文件等。 HarmonyOS标准系统支持典型的存储数据形态,包括用户…

SOLID原则学习,开闭原则

文章目录 1. 定义2. 开闭原则的详细解释3. 实现开闭原则的方法4. 总结 1. 定义 开闭原则(Open-Closed Principle,OCP)是面向对象设计中的五大原则(SOLID)之一,由Bertrand Meyer提出。开闭原则的核心思想是…

西电-算法分析-研究生课程复习笔记

24年秋的应该是张老师最后一次用卷面考试,他说以后这节课的期末考试都是在OJ上刷题了张老师上课还挺有意思的,上完之后能学会独立地思考算法设计问题了。整节课都在强调规模压缩这个概念,考试也是考个人对这些的理解,还挺好玩的哈…

插入实体自增主键太长,mybatis-plaus自增主键

1、问题 spring-boot整合mybtais执行insert语句时,主键id为长文本数据。 2、分析问题 1)数据库主键是否自增 2)数据库主键的种子值设置的多少 3、解决问题 1)数据库主键设置的时自增 3)种子值是1 所以排查是数据库的问题 4、继…

上海亚商投顾:沪指探底回升微涨 机器人概念股午后爆发

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 市场全天探底回升,沪指盘中跌超1.6%,创业板指一度跌逾3%,午后集体拉升翻红…

基于深度学习算法的AI图像视觉检测

基于人工智能和深度学习方法的现代计算机视觉技术在过去10年里取得了显著进展。如今,它被广泛用于图像分类、人脸识别、图像中物体的识别等。那么什么是深度学习?深度学习是如何应用在视觉检测上的呢? 什么是深度学习? 深度学习是…

基于Spring Boot的海滨体育馆管理系统的设计与实现

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的海滨体育馆管理系统的设计与实现。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 宠物医院…

深度学习每周学习总结R3(LSTM-火灾温度预测)

🍨 本文为🔗365天深度学习训练营 中的学习记录博客R4中的内容,为了便于自己整理总结起名为R3🍖 原作者:K同学啊 | 接辅导、项目定制 目录 0. 总结1. LSTM介绍LSTM的基本组成部分如何理解与应用LSTM 2. 数据导入3. 数据…

全方位解读消息队列:原理、优势、实例与实践要点

全方位解读消息队列:原理、优势、实例与实践要点 一、消息队列基础认知 在数字化转型浪潮下,分布式系统架构愈发复杂,消息队列成为其中关键一环。不妨把消息队列想象成一个超级“信息驿站”,在古代,各地的信件、物资运…

conda install包时出现CondaHTTPError: HTTP 403 FORBIDDEN for url ....问题,但已经排除镜像源问题

最近连WIFI下包出现如下问题,已排除镜像源问题。但是一直装不上包。 CondaHTTPError: HTTP 403 FORBIDDEN for url https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64/ca-certifica Elapsed: 00:00.202308 An HTTP error occurred when trying to …

【Rust自学】11.3. 自定义错误信息

喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 11.3.1. 添加错误信息 在 11.2. 断言(Assert) 中我们学习了assert!、assert_eq!和assert_ne!这三个宏,而这篇文章讲的就是它…

linux下shell中使用上下键翻出历史命名时出现^[[A^[[A^[[A^[[B^[[B的问题解决

前言 今天在使用linux的时候,使用上下键想翻出历史命令时,却出现[[A[[A[[A[[B^[[B这种东东,而tab键补全命令的功能也无法使用。最终发现是由于当前用户使用的shell是/bin/sh的原因。 解决方法 运行以下命令,将默认 shell 设置为…

【操作系统】课程 8文件管理 同步测练 章节测验

8.1知识点导图 它详细地展示了文件的定义、分类、逻辑结构、目录结构以及文件共享和保护的各个方面。下面是对图中内容的文字整理: 文件定义 文件是具有文件名的一组相关信息的集合。 文件分类 按用途分类:系统文件、用户文件、库文件。按存取控制属性分…

1月9日星期四今日早报简报微语报早读

1月9日星期四,农历腊月初十,早报#微语早读。 1、上海排查47家“俄罗斯商品馆”:个别店铺被责令停业,立案调查; 2、西藏定日县已转移受灾群众4.65万人,检测到余震646次; 3、国家发改委&#x…

1.8-9号Python猛刷动态规划

今日宽恕:总结不是纠结过去,表达不是“见斑知豹”,还要更多信息整合后去回答。 题目一 3297.统计重新排列后包含另一个字符串| 示例 1: 输入:word1 "abcabc", word2 "abc" 输出:10 解释&#…

【Python】论文长截图、页面分割、水印去除、整合PDF

有的学校的论文只能在线预览,且存在水印。为保存到本地方便查阅,可以使用以下工作流进行处理: 用浏览器打开在线论文预览界面;使用fastone capture软件截长图;将论文按页数进行分割;按照阈值消除浅色的背景…

FPGA的 基本结构(Xilinx 公司Virtex-II 系列FPGA )

以Xilinx 公司Virtex-II 系列FPGA 为例,其基本结构由下图所示。它是主要由两大部分组成:可编程输入/输出(Programmable I/Os)部分和内部可配置(Configurable Logic)部分。 可编程输入/输出(I/Os…

详解Sonar与Jenkins 的集成使用!

本文阅读前提 本文假设读者熟悉Jenkins和SonarQube的基础操作。 核心实现功能 Jenkins中运行的job来调用SonarScanner,最后可实现测试结果与SonarQube中同步查看。 Jenkins中安装Sonar相关插件 配置Sonarqube Dashboard>Manage Jenkins>Systems 指定son…

010:传统计算机视觉之大津算法初探

本文为合集收录,欢迎查看合集/专栏链接进行全部合集的系统学习。 合集完整版请参考这里。 上一节学习了利用 Canny 算法来完成一个图片的边缘检测,从而可以区分出图像的边缘。 本节再了解一个计算机视觉中更常见的应用,那就是把图片的前景和…

Harmony开发-ArkUI框架速成十一Swiper布局

程序员Feri一名12年的程序员,做过开发带过团队创过业,擅长Java、嵌入式、鸿蒙、人工智能等,专注于程序员搞钱那点儿事,希望在搞钱的路上有你相伴!君志所向,一往无前! 1.Swiper 1.1 Swiper组件 Swiper组件提供滑动轮播显示的能力。 Swiper本身是一个容…