zoukankan      html  css  js  c++  java
  • (十)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)
    • 算术运算符(+ - * / %)
    • 移位运算符(<< >>)
    • 关系运算符(< > <= >= 在 != == 之前)
    • 位运算符(依次按& ^ |)
    • 逻辑运算符(依次&& ||)
    • 赋值运算符(= += -= *= /= >>= <<= &= ^= |=)
    • 逗号
  • 相关阅读:
    ELK扫盲及搭建
    重构支付接口(二)重构方案
    重构支付接口(一)支付接口存在的问题
    redis的持久化(RDB与AOF)
    死锁、活锁、性能问题
    Android控件_RecycleView+CarView+Palette联合应用
    窗体间传值 ,子窗体传给父窗体
    【Android-自定义控件】 漂亮的Toast
    【Android-关闭所有Activity】关闭activity之前的所有activity,重启actibity
    【Android-自定义控件】SwipeRefreshDemo 下拉刷新,上拉加载
  • 原文地址:https://www.cnblogs.com/xiximayou/p/11831560.html
Copyright © 2011-2022 走看看