kawalan proses golang

May 13, 2023 am 11:12 AM

Golang ialah bahasa pengaturcaraan yang cekap dan moden yang menyediakan ciri yang kaya dalam kawalan proses. Artikel ini akan meneroka struktur kawalan aliran di Golang, termasuk pernyataan bersyarat, pernyataan gelung dan pernyataan lompat, untuk membantu pembaca memahami dan menggunakan struktur ini dengan lebih baik.

Pernyataan bersyarat

Pernyataan bersyarat di Golang termasuk penyataan jika, tukar penyataan dan pilih penyataan.

  1. kenyataan if

jika pernyataan digunakan untuk penghakiman bersyarat Sintaksnya adalah seperti berikut:

if condition {
    statement(s)
} else if condition {
    statement(s)
} else {
    statement(s)
}
Salin selepas log masuk

di mana syarat ialah ungkapan bersyarat yang digunakan untuk penghakiman. benar dan salah. Jika keadaan adalah benar, blok pernyataan berikut jika dilaksanakan jika tidak, blok pernyataan dilangkau dan pernyataan seterusnya dilaksanakan.

Jika syarat diikuti oleh kata kunci else if, setiap ungkapan bersyarat akan dinilai mengikut tertib dan blok pernyataan pertama yang benar akan dilaksanakan. Jika semua ungkapan bersyarat adalah palsu, blok pernyataan berikutan yang lain dilaksanakan. Tanpa blok else, tiada pernyataan dilaksanakan jika syarat itu palsu.

Berikut ialah contoh pernyataan if:

package main

import "fmt"

func main() {
    var a int = 10
    if a < 20 {
        fmt.Printf("a 小于 20
")
    }
    fmt.Printf("a 的值为 : %d
", a)
}
Salin selepas log masuk

Hasil output:

a 小于 20
a 的值为 : 10
Salin selepas log masuk
  1. penyataan suis

penyataan suis ialah digunakan untuk pelbagai pertimbangan Bersyarat, sintaksnya adalah seperti berikut:

switch expression {
    case value1:
        statement(s)
    case value2:
        statement(s)
    case value3:
        statement(s)
    default:
        statement(s)
}
Salin selepas log masuk

Antaranya, ungkapan ialah ungkapan yang digunakan untuk memadankan pemalar atau pembolehubah dalam klausa kes. Jika padanan berjaya, blok pernyataan yang sepadan dilaksanakan jika tidak, blok pernyataan dilangkau dan klausa kes seterusnya (jika ada) dilaksanakan.

Jika semua klausa kes tidak berjaya dipadankan, blok pernyataan berikut lalai akan dilaksanakan. Jika tiada klausa lalai, tiada pernyataan dilaksanakan.

Berikut ialah contoh pernyataan suis:

package main

import "fmt"

func main() {
    var grade string = "B"
    var marks int = 90

    switch marks {
        case 90:
            grade = "A"
        case 80:
            grade = "B"
        case 60, 70:
            grade = "C"
        default:
            grade = "D"
    }

    switch {
        case grade == "A" :
            fmt.Printf("优秀!
" )
        case grade == "B", grade == "C" :
            fmt.Printf("良好
" )
        case grade == "D" :
            fmt.Printf("及格
" )
        case grade == "F":
            fmt.Printf("不及格
" )
        default:
            fmt.Printf("差
" )
    }
    fmt.Printf("你的等级是 %s
", grade )
}
Salin selepas log masuk

Hasil output:

良好!
你的等级是 B
Salin selepas log masuk
  1. select statement

select statement is digunakan pada masa yang sama Untuk memantau berbilang saluran, sintaksnya adalah seperti berikut:

select {
    case communication clause 1:
        statement(s)
    case communication clause 2:
        statement(s)
    .............
    default:
        statement(s)
}
Salin selepas log masuk

Antaranya, klausa komunikasi merujuk kepada saluran atau operasi saluran dengan arah, termasuk operasi penghantaran dan operasi penerimaan. Jika saluran mempunyai data yang boleh dibaca atau ditulis, blok pernyataan yang sepadan dilaksanakan jika tidak, saluran dilangkau dan klausa komunikasi seterusnya dilaksanakan. Jika tiada data boleh dibaca atau ditulis pada mana-mana saluran, blok pernyataan berikutan lalai dilaksanakan.

Berikut ialah contoh pernyataan pilihan:

package main

import "fmt"

func fibonacci(c, quit chan int) {
    x, y := 0, 1
    for {
        select {
        case c <- x:
            x, y = y, x+y
        case <-quit:
            fmt.Println("quit")
            return
        }
    }
}

func main() {
    c := make(chan int)
    quit := make(chan int)
    go func() {
        for i := 0; i < 10; i++ {
            fmt.Println(<-c)
        }
        quit <- 0
    }()
    fibonacci(c, quit)
}
Salin selepas log masuk

Hasil keluaran:

0
1
1
2
3
5
8
13
21
34
quit
Salin selepas log masuk

Penyataan gelung

Pernyataan gelung di Golang termasuk untuk pernyataan dan julat kenyataan .

  1. untuk pernyataan

Penyataan for digunakan untuk melaksanakan sekeping kod dalam gelung Sintaks adalah seperti berikut:

for init; condition; post {
    statement(s);
}
Salin selepas log masuk

Antaranya , init digunakan untuk bila hendak memulakan gelung, keadaan Ia digunakan untuk menentukan sama ada gelung diteruskan, dan pos digunakan untuk mengawal operasi pembolehubah gelung.

Berikut ialah contoh pernyataan for:

package main

import "fmt"

func main() {
    var b int = 15
    var a int

    for i := 0; i < 10; i++ {
        fmt.Printf("i 的值为: %d
", i)
    }

    for a < b {
        a++
        fmt.Printf("a 的值为: %d
", a)
    }
}
Salin selepas log masuk

Hasil keluaran:

i 的值为: 0
i 的值为: 1
i 的值为: 2
i 的值为: 3
i 的值为: 4
i 的值为: 5
i 的值为: 6
i 的值为: 7
i 的值为: 8
i 的值为: 9
a 的值为: 1
a 的值为: 2
a 的值为: 3
a 的值为: 4
a 的值为: 5
a 的值为: 6
a 的值为: 7
a 的值为: 8
a 的值为: 9
a 的值为: 10
a 的值为: 11
a 的值为: 12
a 的值为: 13
a 的值为: 14
a 的值为: 15
Salin selepas log masuk
  1. penyataan julat

pernyataan julat ialah digunakan untuk Elemen traversal tatasusunan, kepingan, saluran atau peta, sintaksnya adalah seperti berikut:

for key, value := range oldMap {
    newMap[key] = value
}
Salin selepas log masuk

di mana kunci dan nilai masing-masing mewakili kunci dan nilai elemen semasa.

Berikut ialah contoh pernyataan julat:

package main

import "fmt"

func main() {
    nums := []int{2, 3, 4}
    sum := 0
    for _, num := range nums {
        sum += num
    }
    fmt.Println("sum:", sum)

    for i, num := range nums {
        if num == 3 {
            fmt.Println("index:", i)
        }
    }

    kvs := map[string]string{"a": "apple", "b": "banana"}
    for k, v := range kvs {
        fmt.Printf("%s -> %s
", k, v)
    }
}
Salin selepas log masuk

Hasil keluaran:

sum: 9
index: 1
a -> apple
b -> banana
Salin selepas log masuk

Pernyataan lompat

Pernyataan lompat dalam Golang termasuk putus dan teruskan dan goto.

  1. pernyataan break

pernyataan break digunakan untuk mengganggu badan gelung Sintaks adalah seperti berikut:

for i := 0; i < 10; i++ {
    if i == 5 {
        break
    }
    fmt.Printf("%d ", i)
}
fmt.Println()
Salin selepas log masuk

Hasil output:

0 1 2 3 4
Salin selepas log masuk
.
  1. penyataan sambung

penyataan sambung digunakan untuk mengganggu lelaran badan gelung semasa Sintaksnya adalah seperti berikut:

for i := 0; i < 10; i++ {
    if i == 5 {
        continue
    }
    fmt.Printf("%d ", i)
}
fmt.Println()
Salin selepas log masuk

Hasil keluaran:

.
0 1 2 3 4 6 7 8 9
Salin selepas log masuk
  1. pernyataan goto

Pernyataan goto digunakan untuk melompat tanpa syarat ke label (label) kod tertentu untuk pelaksanaan Sintaksnya adalah seperti berikut:

goto label;
...
label: statement
Salin selepas log masuk

di mana label ialah pengecam dan pernyataan ialah pernyataan pelaksanaan.

Berikut ialah contoh pernyataan goto:

package main

import "fmt"

func main() {
    i := 0
Again:
    fmt.Printf("循环执行次数:%d
", i)
    i++
    if i < 10 {
        goto Again
    }
}
Salin selepas log masuk

Hasil output:

循环执行次数:0
循环执行次数:1
循环执行次数:2
循环执行次数:3
循环执行次数:4
循环执行次数:5
循环执行次数:6
循环执行次数:7
循环执行次数:8
循环执行次数:9
Salin selepas log masuk

Ringkasan

Struktur kawalan aliran di Golang termasuk pernyataan bersyarat dan gelung pernyataan dan pernyataan lompat. Pernyataan bersyarat termasuk jika, tukar dan pilih pernyataan, yang digunakan untuk membuat pertimbangan tunggal atau berbilang syarat. Penyataan gelung termasuk penyataan untuk dan julat, yang digunakan untuk menggelungkan sekeping kod atau melintasi elemen. Pernyataan lompat termasuk penyataan putus, teruskan dan goto, yang digunakan untuk mengganggu gelung semasa atau melompat tanpa syarat ke label untuk dilaksanakan. Dalam pengaturcaraan sebenar, adalah perlu untuk memilih struktur kawalan proses yang sesuai secara fleksibel mengikut keperluan untuk melaksanakan logik kod.

Atas ialah kandungan terperinci kawalan proses golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah kelemahan debian openssl Apakah kelemahan debian openssl Apr 02, 2025 am 07:30 AM

OpenSSL, sebagai perpustakaan sumber terbuka yang digunakan secara meluas dalam komunikasi yang selamat, menyediakan algoritma penyulitan, kunci dan fungsi pengurusan sijil. Walau bagaimanapun, terdapat beberapa kelemahan keselamatan yang diketahui dalam versi sejarahnya, yang sebahagiannya sangat berbahaya. Artikel ini akan memberi tumpuan kepada kelemahan umum dan langkah -langkah tindak balas untuk OpenSSL dalam sistem Debian. Debianopenssl yang dikenal pasti: OpenSSL telah mengalami beberapa kelemahan yang serius, seperti: Kerentanan Pendarahan Jantung (CVE-2014-0160): Kelemahan ini mempengaruhi OpenSSL 1.0.1 hingga 1.0.1f dan 1.0.2 hingga 1.0.2 versi beta. Penyerang boleh menggunakan kelemahan ini untuk maklumat sensitif baca yang tidak dibenarkan di pelayan, termasuk kunci penyulitan, dll.

Apakah masalah dengan thread giliran di crawler colly go? Apakah masalah dengan thread giliran di crawler colly go? Apr 02, 2025 pm 02:09 PM

Masalah Threading Giliran di GO Crawler Colly meneroka masalah menggunakan Perpustakaan Colly Crawler dalam bahasa Go, pemaju sering menghadapi masalah dengan benang dan permintaan beratur. � ...

Perpustakaan apa yang digunakan untuk operasi nombor terapung di GO? Perpustakaan apa yang digunakan untuk operasi nombor terapung di GO? Apr 02, 2025 pm 02:06 PM

Perpustakaan yang digunakan untuk operasi nombor terapung dalam bahasa Go memperkenalkan cara memastikan ketepatannya ...

Berubah dari front-end ke pembangunan back-end, adakah lebih menjanjikan untuk belajar Java atau Golang? Berubah dari front-end ke pembangunan back-end, adakah lebih menjanjikan untuk belajar Java atau Golang? Apr 02, 2025 am 09:12 AM

Laluan Pembelajaran Backend: Perjalanan Eksplorasi dari Front-End ke Back-End sebagai pemula back-end yang berubah dari pembangunan front-end, anda sudah mempunyai asas Nodejs, ...

Kaedah Pemantauan PostgreSQL di bawah Debian Kaedah Pemantauan PostgreSQL di bawah Debian Apr 02, 2025 am 07:27 AM

Artikel ini memperkenalkan pelbagai kaedah dan alat untuk memantau pangkalan data PostgreSQL di bawah sistem Debian, membantu anda memahami pemantauan prestasi pangkalan data sepenuhnya. 1. Gunakan PostgreSQL untuk membina pemantauan PostgreSQL sendiri menyediakan pelbagai pandangan untuk pemantauan aktiviti pangkalan data: PG_STAT_ACTIVITY: Memaparkan aktiviti pangkalan data dalam masa nyata, termasuk sambungan, pertanyaan, urus niaga dan maklumat lain. PG_STAT_REPLITI: Memantau status replikasi, terutamanya sesuai untuk kluster replikasi aliran. PG_STAT_DATABASE: Menyediakan statistik pangkalan data, seperti saiz pangkalan data, masa komitmen/masa rollback transaksi dan petunjuk utama lain. 2. Gunakan alat analisis log pgbadg

Di Go, mengapa rentetan percetakan dengan fungsi println dan rentetan () mempunyai kesan yang berbeza? Di Go, mengapa rentetan percetakan dengan fungsi println dan rentetan () mempunyai kesan yang berbeza? Apr 02, 2025 pm 02:03 PM

Perbezaan antara percetakan rentetan dalam bahasa Go: perbezaan kesan menggunakan fungsi println dan rentetan () sedang ...

Bagaimana menyelesaikan masalah penukaran jenis user_id semasa menggunakan aliran redis untuk melaksanakan beratur mesej dalam bahasa Go? Bagaimana menyelesaikan masalah penukaran jenis user_id semasa menggunakan aliran redis untuk melaksanakan beratur mesej dalam bahasa Go? Apr 02, 2025 pm 04:54 PM

Masalah menggunakan redisstream untuk melaksanakan beratur mesej dalam bahasa Go menggunakan bahasa Go dan redis ...

Bagaimana cara menentukan pangkalan data yang berkaitan dengan model dalam beego orm? Bagaimana cara menentukan pangkalan data yang berkaitan dengan model dalam beego orm? Apr 02, 2025 pm 03:54 PM

Di bawah rangka kerja beegoorm, bagaimana untuk menentukan pangkalan data yang berkaitan dengan model? Banyak projek beego memerlukan pelbagai pangkalan data untuk dikendalikan secara serentak. Semasa menggunakan beego ...

See all articles