(十)golang--运算符
1.算术运算符
+ - * / % ++ --
使用细节:
(1)对于"/"号,整数除和小数除的区别;
(2)++和--只能独立使用,即a=a++是不允许的;没有++a和--a;if a++ > 0也是不合法的;
2.赋值运算符
= += -= *= /= %=
<<= >>= &= ^= |=
使用特点:
(1)运算顺序从右往左;
(2)赋值运算符的左边只能是变量,右边可以是表达式,变量和常量;
小例子:不用中间变量,交换两个变量的值:
package main import (
"fmt"
) func main() {
var num1 int = 3
var num2 int = 5
fmt.Println("num1的值是:", num1)
fmt.Println("num2的值是:", num2)
num1 = num1 + num2
fmt.Println("num1的值是:", num1)
num2 = num1 - num2 //相当于num2=num1+num2-num2 ==>num2=num1
fmt.Println("num2的值是:", num2)
num1 = num1 - num2 //相当于num1=num1+num2-num1 ==>num1=num2
fmt.Println("num1的值是:", num1)
fmt.Println("num2的值是:", num2)
}

我这个go版本可以直接使用和python一样语法:即num1, num2 = num2, num1
3.比较运算符
== != < > <= >=
4.逻辑运算符
&& 逻辑与:如果两边都为true,则返回true,否则返回false
|| 逻辑或:如果两边至少有一个true,则返回true,否则返回false
| 逻辑非:如果和条件相反的布尔值
注意:逻辑与第一个条件是false,第二个条件就不会判断;逻辑或如果第一个条件是true,则第二个条件不会被判断;
5.位运算符
& | ^ << >>
6.其他运算符
& *
golang不支持三元运算符,只能用if else进行实现;
var i int = 10
var j int = 20
var n int
if i > j {
n = i
} else {
n = j
}
运算符的优先级:
(1)只有单目运算符、赋值运算符是从右向左的;
以下优先级依次降低:
- () [] ++ --
- 单目运算(* & sizeof)
- 算术运算符(+ - * / %)
- 移位运算符(<< >>)
- 关系运算符(< > <= >= 在 != == 之前)
- 位运算符(依次按& ^ |)
- 逻辑运算符(依次&& ||)
- 赋值运算符(= += -= *= /= >>= <<= &= ^= |=)
- 逗号
(十)golang--运算符的更多相关文章
- sdut 面向对象程序设计上机练习十(运算符重载)
面向对象程序设计上机练习十(运算符重载) Time Limit: 1000MS Memory limit: 65536K 题目描写叙述 定义一个复数类Complex,重载运算符"+" ...
- C#编程(四十)----------运算符重载
运算符重载 所谓的运算符重载是指允许用户使用用户定义的类型编写表达式的能力. 例如,通常需要编写类似与以下内容的代码,入江两个数字相加,很明显,sum是两个数字之和. int i=5,j=4; int ...
- golang 运算符
/* 算术运算符 : + - * / % ++ -- 关系运算符 : == != > < >= <= 逻辑运算符 : && || ! 赋值运算符 : = += ...
- golang运算与循环等
一.golang运算符 1.算术运算符 + 相加- 相减* 相乘/ 相除% 求余++ 自增-- 自减 2.关系运算符 == 等于!= 不等于> 大于< 小于>= 大于等于<= ...
- C#运算符大全_各种运算符号的概述及作用
一.[]方括号 ([]) 用于数组.索引器和属性,也可用于指针. 1.数组类型是一种后跟 [] 的类型:int[] fib = new int[100]; //创建一个有100元素的数组若要访问数组的 ...
- Golang语言的入门开始
一.golang介绍与安装 二.golang-hello world 三.golang的变量 四.golang的类型 五.golang的常量 六.golang的函数(func) 七.golang的包 ...
- JavaScript---js语法,数据类型及方法, 数组及方法,JSON对象及方法,日期Date及方法,正则及方法,数据类型转换,运算符, 控制流程(三元运算),函数(匿名函数,自调用函数)
day46 一丶javascript介绍 JavaScript的基础分为三个 1.ECMAScript:JavaScript的语法标准.包括变量,表达式,运算符,函数,if语句,for语句 ...
- python3笔记三:运算符与表达式
一:学习内容 算术运算符:+(加).-(减).*(乘)./(除).%(取模).**(求幂).//(取整) 赋值运算符:= 复合运算符:+=.-=.*=./=.%=.**=.//= 位运算符:& ...
- C++_01_入门
一.类的定义 Person.h类声明 Person.cpp类实现 main.cpp主函数 二.命名空间的使用 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv ...
- 从零开始学习前端JAVASCRIPT — 1、JavaScript基础
1:定义:javascript是一种弱类型.动态类型.解释型的脚本语言. 弱类型:类型检查不严格,偏向于容忍隐式类型转换. 强类型:类型检查严格,偏向于不容忍隐式类型转换. 动态类型:运行的时候执行类 ...
随机推荐
- C# 流介绍 (原发布 csdn 2017-09-15 23:37:52)
1.FileStream FileStream 详细介绍参考msdn 写数据: using (FileStream fs = new FileStream("File.FileStream& ...
- APS.NET MVC + EF (06)---模型
在实际开发中,模型往往被划分为视图模型和业务模型两部分,视图模型靠近视图,业务模型靠近业务,但是在具体编码上,它们之间并不是隔离的. 6.1 视图模型和业务模型 模型大多数时候都是用来传递数据的.然而 ...
- https://www.cnblogs.com/kxm87/p/9268622.html
数据库使用MySQL,ORM使用spring data jpa 1 因此需要再pom.xml文件中添加相应jar包.如下: <!-- 引入jap --> <dependency> ...
- python网络编程-1
1.网络基础 回顾计算IP所处网段方式 #128 64 32 16 8 4 2 1 #IP1 = 192.168.9.1/24 # 11000000 10101000 00001001 0000000 ...
- liteos队列(五)
1. 概述 队列又称消息队列,是一种常用于任务间通信的数据结构,实现了接收来自任务或中断的不固定长度的消息,并根据不同的接口选择传递消息是否存放在自己空间.任务能够从队列里面读取消息,当队列中的消息是 ...
- 感知哈希算法——Python实现【转】
转自:https://blog.csdn.net/m_buddy/article/details/78887248 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原 ...
- 使用BurpSuite做中转代理时候出现Failed to connect to www.xxx.com:443 的时候可能原因
1.可能是BurpSuite没有设置好代理,需要BurpSuite需要进行设置如下图:
- Python元组与字符串操作(9)——随机数、元组、命名元组
随机数 import random #导入random模块 randint(a,b) 返回[a,b]之间的整数 random.randint(0,9) randrange([start],stop,[ ...
- Axel多线程工具安装
Axel 是 Linux 下一个不错的轻量级高速下载工具,支持HTTP/FTP/HTTPS/FTPS协议,支持多线程下载.断点续传,且可以从多个地址或者从一个地址的多个连接来下载同一个文件. 大家使用 ...
- 002-Zabbix 前端配置
Zabbix 前端配置 [基于此文章的环境]点我快速打开文章 [官方地址]点我快速打开文章 第 1 步 在浏览器中,打开 Zabbix URL:http:// <server_ip_or_nam ...