• (十)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)
    • 算术运算符(+ - * / %)
    • 移位运算符(<< >>)
    • 关系运算符(< > <= >= 在 != == 之前)
    • 位运算符(依次按& ^ |)
    • 逻辑运算符(依次&& ||)
    • 赋值运算符(= += -= *= /= >>= <<= &= ^= |=)
    • 逗号
  • 相关阅读:
    一个浏览器循环刷新网页的例子
    Ajax和JSON基础
    HTML-第三章构建模块小结
    HTML-元素属性
    入前端坑的第一天
    JZOJ 【2021.11.10NOIP提高组联考】
    LG P2633 Count on a tree
    JZOJ 7339.改试卷
    [CEOI2017] Building Bridges
    拉格朗日插值法
  • 原文地址:https://www.cnblogs.com/xiximayou/p/11831560.html
Copyright © 2020-2023  润新知