前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >(十)golang--运算符

(十)golang--运算符

作者头像
西西嘛呦
发布2020-08-26 11:06:21
6810
发布2020-08-26 11:06:21
举报

1.算术运算符

  + - * / % ++ --

使用细节: (1)对于"/"号,整数除和小数除的区别;

(2)++和--只能独立使用,即a=a++是不允许的;没有++a和--a;if a++ > 0也是不合法的;

2.赋值运算符

  = += -= *= /= %=

  <<= >>= &= ^= |=

使用特点: (1)运算顺序从右往左;

(2)赋值运算符的左边只能是变量,右边可以是表达式,变量和常量;

小例子:不用中间变量,交换两个变量的值:

代码语言:javascript
复制
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进行实现;

代码语言:javascript
复制
var i int = 10
var j int = 20
var n int
if i > j {
    n = i
} else {
    n = j
}

运算符的优先级:

(1)只有单目运算符、赋值运算符是从右向左的;

  以下优先级依次降低:

  • () [] ++ --
  • 单目运算(* & sizeof)
  • 算术运算符(+ - * / %)
  • 移位运算符(<< >>)
  • 关系运算符(< > <= >= 在 != == 之前)
  • 位运算符(依次按& ^ |)
  • 逻辑运算符(依次&& ||)
  • 赋值运算符(= += -= *= /= >>= <<= &= ^= |=)
  • 逗号
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-11-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档