美文网首页
3.2.5Golang的运算符

3.2.5Golang的运算符

作者: 寒暄_HX | 来源:发表于2020-03-16 14:28 被阅读0次

    总目录:https://www.jianshu.com/p/e406a9bc93a9

    Golang - 子目录:https://www.jianshu.com/p/8b3e5b2b4497

    运算符

    golang的运算符有五种:
    1.算术运算符
    2.比较运算符
    3.逻辑运算符
    4.位运算符
    5.赋值运算符

    算术运算符

    运算符 描述
    + 相加
    - 相减
    * 相乘
    / 相除
    % 求余

    例子:

        var (
            a = 5
            b = 2
        )
        // 算术运算符
        fmt.Println("a + b:",a + b)
        fmt.Println("a - b:",a - b)
        fmt.Println("a * b:",a * b)
        fmt.Println("a / b:",a / b)
        fmt.Println("a % b:",a % b)
        a ++  // go语言中的 ++ -- 是一个单独的语句
        fmt.Println("a ++ :",a)
        b --
        fmt.Println("b -- :",b)
    ----------
    a + b: 7
    a - b: 3
    a * b: 10
    a / b: 2
    a % b: 1
    a ++ : 6
    b -- : 1
    

    比较运算符

    运算符 描述
    == 检查两个值是否相等,如果相等返回 True 否则返回 False。
    != 检查两个值是否不相等,如果不相等返回 True 否则返回 False。
    > 检查左边值是否大于右边值,如果是返回 True 否则返回 False。
    >= 检查左边值是否大于等于右边值,如果是返回 True 否则返回 False。
    < 检查左边值是否小于右边值,如果是返回 True 否则返回 False。
    <= 检查左边值是否小于等于右边值,如果是返回 True 否则返回 False。

    例子:

        var (
            a = 5
            b = 2
        )
        fmt.Println("a == b:",a == b)
        fmt.Println("a > b:",a > b)
        fmt.Println("a < b:",a < b)
        fmt.Println("a >= b:",a >= b)
        fmt.Println("a <= b:",a <= b)
        fmt.Println("a != b:",a != b)
    ----------
    a == b: false
    a > b: true
    a < b: false
    a >= b: true
    a <= b: false
    a != b: true
    

    逻辑运算符

    运算符 描述
    && 逻辑 AND 运算符。 如果两边的操作数都是 True,则为 True,否则为 False。
    丨丨 逻辑 OR 运算符。 如果两边的操作数有一个 True,则为 True,否则为 False。
    ! 逻辑 NOT 运算符。 如果条件为 True,则为 False,否则为 True。

    例子:

        //逻辑运算符
        //年龄大于18岁 并且 小于60岁,就要上班
        age := 20
        if age>18 && age<60{
            fmt.Println("要上班")
        }else{
            fmt.Println("不用上班")
        }
        //年龄小于18岁,或者  年龄大于60岁,不用上班
        if age<18 || age>60{
            fmt.Println("不要上班")
        }else{
            fmt.Println("要上班")
        }
        //not  取反  真为假 假为真
        isOK := false
        if !isOK{
            fmt.Println("取反")
        }
    ----------
    要上班
    要上班
    取反
    

    位运算符

    可以参考我Python运算符的描述。

    运算符 描述
    & 参与运算的两数各对应的二进位相与。(两位均为1才为1)
    参与运算的两数各对应的二进位相或。(两位有一个为1就为1)
    ^ 参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。(两位不一样则为1)
    << 左移n位就是乘以2的n次方。“a<<b”是把a的各二进位全部左移b位,高位丢弃,低位补0。
    >> 右移n位就是除以2的n次方。“a>>b”是把a的各二进位全部右移b位。

    例子:

        //位运算符(针对二进制数)
        //5的二进制是 0101
        //2的二进制是 0010
        fmt.Println("5 & 2:",5 & 2)
        fmt.Println("5 | 2:",5 | 2)
        fmt.Println("5 ^ 2:",5 ^ 2)
        fmt.Println("5 << 1:",5 << 1)
        fmt.Println("5 >> 1:",5 >> 1)
    ----------
    5 & 2: 0
    5 | 2: 7
    5 ^ 2: 7
    5 << 1: 10
    5 >> 1: 2
    

    赋值运算符

    运算符 描述
    = 简单的赋值运算符,将一个表达式的值赋给一个左值
    += 相加后再赋值
    -= 相减后再赋值
    *= 相乘后再赋值
    /= 相除后再赋值
    %= 求余后再赋值
    <<= 左移后赋值
    >>= 右移后赋值
    &= 按位与后赋值
    丨= 按位或后赋值
    ^= 按位异或后赋值

    例子:

    //赋值运算符
        var x int
        x = 10
        fmt.Println("x =:",x)
        x = 10
        x += 1  // x = x+1  一般用 x++
        fmt.Println("x +=:",x)
        x = 10
        x -= 1  // x = x-1  一般用 x--
        fmt.Println("x -=:",x)
        x = 10
        x *= 2  // x = x*2
        fmt.Println("x *=:",x)
        x = 10
        x /= 2  // x = x/2  
        fmt.Println("x /=:",x)
        x = 10
        x %= 2  // x = x%2
        fmt.Println("x %=:",x)
        x = 10
        x <<= 2 // x = x<<2
        fmt.Println("x <<=:",x)
        x = 10
        x >>= 2 // x = x>>2 
        fmt.Println("x >>=:",x)
        x = 10
        x &= 2  // x = x&2  
        fmt.Println("x &=:",x)
        x = 10
        x |= 2  // x = x|2  
        fmt.Println("x |=:",x)
        x = 10
        x ^= 2  // x = x^2  
        fmt.Println("x ^=:",x)
    ----------
    x =: 10
    x +=: 11
    x -=: 9
    x *=: 20
    x /=: 5
    x %=: 0
    x <<=: 40
    x >>=: 2
    x &=: 2
    x |=: 10
    x ^=: 8
    

    相关文章

      网友评论

          本文标题:3.2.5Golang的运算符

          本文链接:https://www.haomeiwen.com/subject/djzwehtx.html