Rumah >pembangunan bahagian belakang >Golang >Bagaimana Mengira Bilangan Elemen dalam Saluran Penampan dalam Go?

Bagaimana Mengira Bilangan Elemen dalam Saluran Penampan dalam Go?

Patricia Arquette
Patricia Arquetteasal
2024-11-13 14:30:03522semak imbas

How to Count the Number of Elements in a Buffered Channel in Go?

Mengukur Bilangan Elemen dalam Saluran Penampan

Dalam Go, saluran penimbal membenarkan elemen untuk ditimbal atau disimpan dalam baris gilir. Menentukan bilangan elemen dalam saluran penimbal adalah penting untuk kawalan aliran dan operasi lain.

Cara Mengukur Bilangan Elemen

Untuk mengukur bilangan elemen dalam saluran penimbal, anda boleh menggunakan fungsi terbina dalam len(). Fungsi ini mengembalikan panjang nilai, yang termasuk bilangan elemen dalam saluran.

len(ch)

Begini cara anda boleh menggunakan ini dalam coretan kod anda:

send_ch := make(chan []byte, 100)
// code
send_ch <- msg
count := len(send_ch)

Bilangan pembolehubah kini akan mengandungi bilangan mesej pada masa ini dalam saluran send_ch.

Ketepatan Pertimbangan

Adalah penting untuk ambil perhatian bahawa ukuran yang diperoleh menggunakan len() mungkin tidak tepat kerana kebimbangan konkurensi. Pra-emption boleh berlaku antara pengukuran dan sebarang tindakan seterusnya, yang berpotensi mengubah bilangan elemen dalam saluran.

Walau bagaimanapun, untuk tujuan kawalan aliran, ukuran anggaran selalunya mencukupi. Anda boleh menggunakan ukuran untuk mencetuskan tindakan apabila tera air tinggi atau rendah tertentu diluluskan.

Contoh Penggunaan

Berikut ialah contoh yang menunjukkan cara menggunakan len() untuk mengukur bilangan elemen dalam saluran:

package main

import (
    "fmt"
)

func main() {
    c := make(chan int, 100)
    for i := 0; i < 34; i++ {
        c <- 0
    }
    fmt.Println(len(c)) // Outputs: 34
}

Program ini menghantar 34 elemen ke dalam saluran penimbal dan kemudian mencetak bilangan elemen dalam saluran menggunakan len().

Atas ialah kandungan terperinci Bagaimana Mengira Bilangan Elemen dalam Saluran Penampan dalam 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