7-基本的运算符

31 阅读1分钟

基本运算符

  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 位运算符
  • 逻辑运算符
  1. 算术运算符
  • 注意: ++(自增) 和 --(自减)在go语言中是单独的语句,不是运算符 image.png
package main
import (
    "fmt"
)

func main() {
    a := 10
    b := 20
    fmt.Println(a + b)
    fmt.Println(a - b)
    fmt.Println(a * b)
    fmt.Println(a / b)// 0 
    fmt.Println(5 % 2)
}	

image.png

2. 关系运算符

package main
import (
    "fmt"
)

func main() {
    fmt.Println(5 > 2)// true
    fmt.Println(5 < 2)// false
    fmt.Println(5 != 2)// true
    fmt.Println(4 == 2)// false
    fmt.Println(4 >= 2)// true
    fmt.Println(4 <= 2)// false
}	

image.png

  1. 逻辑运算符

image.png

package main
import (
    "fmt"
)

func main() {
    // 逻辑运算符
    fmt.Println(5 > 2 && 1 == 1)// true
    fmt.Println(5 > 2 && 5 < 4)// false
    fmt.Println(!(5 > 2))// false
    fmt.Println(1 > 5 || 4 == 4)// true
}	
  1. 位运算符

image.png

package main
import (
    "fmt"
)

func main() {
    // 位运算符
    a := 1// 001 
    b := 5// 101
    fmt.Println(a & b)// 001 -> 1
    fmt.Println(a | b)// 101 -> 5
    fmt.Println(a ^ b)// 100 -> 4
    fmt.Println(a ^ b)// 100 -> 4
    fmt.Println(1 << 2)// 100 -> 4
    fmt.Println(4 >> 2)// 001 -> 1
}	

image.png

  1. 赋值运算符

image.png

package main
import (
    "fmt"
)

func main() {
    // 位运算符 
    a := 0
    a = 5

    a += 1// a = a + 1
    fmt.Println(a)//6

    b := (10 + 20) % 3 + 3 -7
    fmt.Println(b)// -4

    var c int = 10
    c /= 2 // c = c / 2 => 5
    fmt.Println(c)// 5
    c *= 2
    fmt.Println(c)// 10
    c %= 3 // c = 10 % 3
    fmt.Println(c)// 1

    // eg: 交换2个数并输出结果
    var s1 int = 8
    var s2 int = 4
    fmt.Printf("a = %v, b = %v\n", s1, s2)// a = 8, b = 4

    var m int
    m = s1
    s1 = s2
    s2 = m
    fmt.Printf("a = %v, b = %v", s1, s2)// a = 8, b = 4
}	

其它运算符

  • &: 返回变量的存储地址
  • *: 取出指针变量对应的数值
package main
import (
    "fmt"
)

func main() {
    var age int = 18
    fmt.Println("age对应的存储空间的地址为:", &age)

    var ptr *int = &age
    fmt.Println(ptr)
    fmt.Println("ptr这个指针的具体地址值为:", *ptr)
}	

image.png

  • 指针的内容后面补充,todo image.png

运算符优先级

为了提高优先级我们可以加(),懒的记这么多哈哈 - 实在要看百度一下