赋值运算符基本使用|学习笔记

简介: 快速学习赋值运算符基本使用

开发者学堂课程【Go语言核心编程 - 基础语法、数组、切片、Map赋值运算符基本使用】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/625/detail/9546


赋值运算符基本使用

内容介绍:

一、n赋值运算符介绍

二、赋值运算符分类

三、赋值运算符案例演示

四、赋值运算符的特点

本节课来介绍赋值运算符的使用。


一、赋值运算符介绍

赋值运算符就是将某个运算后的值,赋给指定的变量。

运算后的值例如 :加,减,乘,除,或者是一个函数,或者是一个变量的值,或者是一个常量的值。


二、赋值运算符分类

1.常规赋值运算符

运算符

描述

实例

=

简单的赋值运算符,将一个表达式的值赋给一个左值

C=A+B 将A+B表达式结果赋值给C

+=

相加后在赋值

C+=A 等于 C=C+A

-=

相减后在赋值

C-=A 等于 C=C-A

*=

相乘后在赋值

C*=A 等于 C=C*A

/=

相除后在赋值

C/=A 等于 C=C/A

%=

求余后在赋值

C%=A 等于 C=C%A

最简单的赋值运算是“=”(等号),它是将一个表达式的值赋给一个左值。例如C=A+B,就是将A+B的表达式结果赋值给C。而“+=”,“-=”,“*=”,“/=”,“%=”是复合运算符,这是一种简写。

2.除了以上这种常规的复合运算符,还有以下关于“位“的运算符

运算符

描述

实例

<<=

左移后赋值

C<<=2等于C=C<<2

>>=

右移后赋值

C>>=2等于C=C>>2

&=

按位与后赋值

C&=2等于C=C&2

^=

按位异或后赋值

C^=2等于C=C^2

|=

按位或后赋值

C | =2等于C=C | 2

说明:这部分的赋值运算涉及到二进制相关知识,放在讲二进制的时候再进行讲解

接下来讲解常规的运算

三、赋值运算符案例演示

案例演示赋值运算符的基本使用。

1.赋值基本案例

2.有两个变量,a和b,要求将其进行交换,最终打印结果

3.+=的使用案例

案例:

新建文件夹demo05,再在其中建立文件main.go。在前面文件中复制一个整体框架写入,代码如下:

Package main

import(

“fmt”

)

func main( ) {

}

接下来在主函数中演示赋值运算符的使用,代码如下:

func main( ) {

//赋值运算符的使用演示

var i int

i = 10  

//基本赋值

//有两个变量a和b,要求将其进行交换最终打印结果

//

a= 9 , b = 2 ==> a = 2 b = 9

a := 9

b := 2

//定义2个变量

fmt.Printlf(交换前的情况是a= %v , b=%v \n”, a, b)

//定义一个临时变量

t := a  //将a的值保存到临时变量t中

a = b  //赋值,把b的值给a

b = t   //交换完毕

fmt.Printf(“交换后的情况是a = %v , b=%v \n”, a, b)  //输出

}

输出时发现报错,是因为var i int里的i没有被使用,这里先将其使用“//“注销,代码如下:

//var i int

//i = 10

//

基本赋值

进而执行输出:

D:\gropro.ject\src\go_code\chapter04\demo04>cd..\demo05

D:\gropro.ject\src\go_code\chapter04\demo05>go run main .go

得到:

交换前的情况是a =9, b=2

交换后的情况是a=2,b=9

可以看到赋值成功。接下来再进行复合赋值的操作,代码如下:

//复合赋值的操作

a += 17  

//等价a = a + 17fmt.Println(“a=”, a)  

//在2的基础上加17,结果应该是19

输出执行:

D:\gropro.ject\src\go_code\chapter04\demo05>go run main .go

得到:

a=19

可以看到与分析一致。

关于赋值运算的基本使用就介绍到这里,接下来介绍赋值运算的使用特点。


四、赋值运算符的特点

1.运算顺序从右往左

例:

var c int

c = a + 3  

//赋值运算的执行顺序是从右向左

//先把a + 3的结果算出来,再交给c

fmt.Println(c)

2.赋值运算符的左边只能是变量,右边可以是变量、表达式、常量值

例:

//表达式:任何有值都可以看做表达式

var d int

d = a

//a的变量给b

d = 8 + 2 * 8

//=的右边是表达式

//此时若有一个函数

func test() int {return 90

}

//那么此时甚至可以这样写:

d = test() + 90

//=的右边是表达式这里是函数

d = 890

// 890常量

输出:

执行:

D:\gropro.ject\src\go_code\chapter04\demo05>go run main .go

得到:

890

可以看到结果确实是890。此时若使用“//“注销d = 890 // 890常量这行代码,那么test就返回90,d的值就为90+90=180,验证:

D:\gropro.ject\src\go_code\chapter04\demo05>go run main .go

得到:

180

可以看到结果与分子一致。

3.复合赋值运算符等价于下面的效果

比如:a += 3等价于a= a+3

这里因为前面已经讲解过就不做详细讲解了。

本节课关于赋值运算的基本特点与基本使用就介绍到这里。

相关文章
|
数据可视化 网络安全 数据安全/隐私保护
Dokcer进阶 Docker配置可视化面板 Portainer可视化面板安装
容器可视化界面安装配置,以及可视化界面的一些基础操作,以及命令详解
1931 0
Dokcer进阶 Docker配置可视化面板 Portainer可视化面板安装
|
Java 测试技术 数据库
【达梦数据库】达梦数据库windows安装
【达梦数据库】达梦数据库windows安装
611 0
|
Unix Shell Linux
如何使用 Awk 打印文件中的字段和列
如何使用 Awk 打印文件中的字段和列
|
3月前
|
存储 监控 NoSQL
Redis高可用架构全解析:从主从复制到集群方案
Redis高可用确保服务持续稳定,避免单点故障导致数据丢失或业务中断。通过主从复制实现数据冗余,哨兵模式支持自动故障转移,Cluster集群则提供分布式数据分片与水平扩展,三者层层递进,保障读写分离、容灾切换与大规模数据存储,构建高性能、高可靠的Redis架构体系。
|
9月前
|
缓存 安全 Java
《从头开始学java,一天一个知识点》之:输入与输出:Scanner与System类
你是否也经历过这些崩溃瞬间?三天教程连`i++`和`++i`都说不清,面试时`a==b`与`equals()`区别大脑空白,代码总是莫名报NPE。这个系列就是为你打造的Java「速效救心丸」!每天1分钟,地铁通勤、午休间隙即可学习。直击高频考点和实际开发中的“坑位”,拒绝冗长概念,每篇都有可运行代码示例。涵盖输入输出基础、猜数字游戏、企业编码规范、性能优化技巧、隐藏技能等。助你快速掌握Java核心知识,提升编程能力。点赞、收藏、转发,助力更多小伙伴一起成长!
190 19
|
数据可视化 API PHP
学生信息管理系统-可视化-科目管理CRUD代码生成器
学生信息管理系统-可视化-科目管理CRUD代码生成器
188 5
|
安全 Java 数据库连接
Spring Boot 优雅关机时异步线程安全优化
Spring Boot 优雅关机时异步线程安全优化
493 1
|
机器学习/深度学习 人工智能 自然语言处理
Transformer介绍
Transformer模型于2017年由Google提出,其在BERT中大放异彩,革新了NLP领域。Transformer的优势在于并行计算能力和处理长距离依赖,通过自注意力机制避免了RNN/LSTM的梯度问题。它由编码器和解码器组成,使用位置编码处理序列信息。Transformer在机器翻译、文本生成、问答系统等多个任务中提升效率和准确性,并扩展至计算机视觉和语音识别。随着AI发展,Transformer成为大模型核心技术,推动整个产业进步。
|
SQL 关系型数据库 数据库
一文熟悉PolarDB-PG 分区表核心特性
在 PolarDB-PG 数据库中,分区表 (Partitioned Table) 使您能够将非常大的表分解为更小且更易于管理的部分,这个部分称为分区 (Partition) 。 每个分区都是一个独立的对象,具有自己的名称和可选的存储特性。本文首先简单的介绍了分区表策略以及它的优势特点,然后介绍了PolarDB-PG 分区表支持的查询优化特性,最后介绍了分区表上的本地索引和全局索引,从而帮助用户对PolarDB-PG 分区表有一个全面的了解。
|
前端开发 JavaScript API
【React工作记录九十九】ant design mobile实现tab滚动效果和闪屏小记
【React工作记录九十九】ant design mobile实现tab滚动效果和闪屏小记
408 0