Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Analisis mendalam tentang kaedah pesanan keutamaan pelbagai pengendali dalam bahasa Go

Analisis mendalam tentang kaedah pesanan keutamaan pelbagai pengendali dalam bahasa Go

PHPz
PHPzasal
2023-12-23 08:58:17932semak imbas

Analisis mendalam tentang kaedah pesanan keutamaan pelbagai pengendali dalam bahasa Go

Analisis mendalam tentang kaedah pesanan keutamaan pelbagai pengendali dalam bahasa Go

Dalam bahasa Go, keutamaan pengendali menentukan susunan penilaian pengendali dalam ungkapan. Memahami keutamaan pengendali dengan betul adalah salah satu kunci untuk menulis kod yang cekap. Artikel ini akan memberikan analisis mendalam tentang kaedah pesanan keutamaan pelbagai operator dalam bahasa Go dan memberikan contoh kod khusus.

1. Keutamaan operator aritmetik

Dalam bahasa Go, keutamaan operator aritmetik dari tinggi ke rendah ialah:

  1. Operator unari: +, -
  2. Operator darab: *, /, %
  3. +, -
  4. Operator perbandingan: ==, !=, >, =,

Contoh kod:

package main

import "fmt"

func main() {
    var a, b, c int = 2, 3, 4
    var result int

    // 一元运算符
    result = -a
    fmt.Println(result) // 输出:-2

    // 乘法运算符
    result = a * b
    fmt.Println(result) // 输出:6

    // 加法运算符
    result = a + b
    fmt.Println(result) // 输出:5

    // 比较运算符
    fmt.Println(a == b) // 输出:false
    fmt.Println(a < b) // 输出:true
}

2. Keutamaan operator logik Tahap

Dalam bahasa Go, keutamaan operator logik dari tinggi ke rendah ialah:

  1. Logik BUKAN: !
  2. Logik DAN: &&
  3. Logik ATAU: ||

Contoh kod:

package main

import "fmt"

func main() {
    var a, b, c bool = true, false, true
    var result bool

    // 逻辑非
    result = !a
    fmt.Println(result) // 输出:false

    // 逻辑与
    result = a && b
    fmt.Println(result) // 输出:false

    // 逻辑或
    result = a || b
    fmt.Println(result) // 输出:true
}

Tiga tugasan

Tiga tugasan

bahasa, keutamaan pengendali tugasan adalah dari kanan ke kiri, dan tiada kaitan dengan keutamaan pengendali lain.

Contoh kod:

package main

import "fmt"

func main() {
    var a, b int = 2, 3

    // 简单赋值
    a = b
    fmt.Println(a) // 输出:3

    // 复合赋值
    a += b
    fmt.Println(a) // 输出:6
}

4. Keutamaan pengendali bersyarat

Dalam bahasa Go, keutamaan pengendali bersyarat (operator ternari) adalah lebih tinggi daripada operator tugasan, tetapi lebih rendah daripada kebanyakan operator lain.

Contoh kod:

package main

import "fmt"

func main() {
    var a, b int = 2, 3
    var result int

    // 条件运算符
    result = a > b ? a : b
    fmt.Println(result) // 输出:3
}

5. Keutamaan pengendali bitwise

Dalam bahasa Go, keutamaan pengendali bitwise dari tinggi ke rendah ialah:

  1. penafian bitwise: ~
  2. Bitwise AND: &
  3. Bitwise AND: &
  4. Bitwise XOR: ^
  5. Shift left:
  6. Shift right:>>

Contoh kod:

package main

import "fmt"

func main() {
    var a, b uint8 = 2, 3
    var result uint8

    // 按位取反
    result = ~a
    fmt.Println(result) // 输出:253

    // 按位与
    result = a & b
    fmt.Println(result) // 输出:2

    // 按位或
    result = a | b
    fmt.Println(result) // 输出:3
}

6. Keutamaan dari operator lain Tahap 🜎 pengendali semakin meningkat:

Pengendali alamat: &
  1. Pengendali indeks: []
  2. Operator pemilihan ahli: .
  3. Contoh kod:
package main

import "fmt"

type person struct {
    name string
    age int
}

func main() {
    var p person
    p.name = "John"
    p.age = 25

    // 地址运算符
    fmt.Println(&p) // 输出:&{John 25}

    // 索引运算符
    nums := [3]int{1, 2, 3}
    fmt.Println(nums[0]) // 输出:1

    // 成员选择运算符
    fmt.Println(p.name) // 输出:John
}

Di atas adalah artikel yang menyediakan analisis mendalam tentang kaedah pengisihan keutamaan pelbagai operator dalam bahasa Go. Dengan memahami dengan betul keutamaan pengendali, kami boleh menulis kod yang cekap dan tepat, meningkatkan kebolehbacaan kod dan kecekapan pelaksanaan. Harap ini membantu!

Atas ialah kandungan terperinci Analisis mendalam tentang kaedah pesanan keutamaan pelbagai pengendali dalam bahasa Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn