美文网首页
05 Golang内置的运算符

05 Golang内置的运算符

作者: learninginto | 来源:发表于2021-03-20 23:23 被阅读0次
    1.算术运算符(与C一致)

    + - * / %

    • /

    除法注意:如果参与运算的数都是整数,那么结果会自动取整数

    • ++/--

    注意:在go中,++t和--是单独的语句,不是运算符,只能独立使用。错误写法如下:

    var i int = 8
    a := i++//错误,i++只能独立使用,不能和赋值运算符并用
    

    ++和--没有前置写法,错误写法如下:

    var i int = 1
    ++i//错误,在golang中没有前置++,只能写成i++
    
    • 正确写法
    var a = 12
    a++
    a--
    fmt.Println(a)//12
    
    2.关系运算符

    == != > >= < <=

    3.逻辑运算符
    • 拥有短路的特性
    test(){
        fmt.Println("test")
        return true;
    }
    func main(){
        num := 10
        if num > 9 && test() {
            fmt.Println("执行")
        }
        //test 执行
        if num > 100 && test(){
            fmt.Println("没执行")
        }
        //(短路了,没有打印)
    }
    
    4.赋值运算符

    = += -= *= /= %=

    • 交换两变量的值
    var a = 34
    var b = 10
    a = a + b
    b = a - b 
    a = a - b  
    fmt.Println(a,b)//10,34                 
    
    5.位运算符
    • &

    两位均为1,结果才为1

    var a = 5//101
    var b = 2//010
    fmt.Println("a&b=", a&b)//0
    
    • |

    两位有一个为1,结果就为1

    var a = 5//101
    var b = 2//010
    fmt.Println("a|b=", a|b)//7
    
    • ^

    两位不一样,则为1

    var a = 5//101
    var b = 2//010
    fmt.Println("a^b=", a^b)//7
    
    • <<

    左移n位,就是乘以2的n次方(高位丢弃,低位补0)

    var a = 5//101
    var b = 2//010
    fmt.Println("a<<b=", a<<b)//10100=>20
    
    • >>

    右移n位,就是除以2的n次方

    var a = 5//101
    var b = 2//010
    fmt.Println("a>>b=", a>>b)//1
    

    相关文章

      网友评论

          本文标题:05 Golang内置的运算符

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