Bagaimana Cara Menggunakan Pernyataan Pilih di Golang?

Bagaimana Cara Menggunakan Pernyataan Pilih Di Golang



A pilih pernyataan di Golang memungkinkan pengembang untuk menyinkronkan dan berkomunikasi antara rutinitas Go, saluran, dan aliran data. Ini memungkinkan program Go untuk menunggu beberapa operasi saluran sekaligus dan menjalankan operasi pertama yang siap.

Pada artikel ini, kita akan mengeksplorasi cara menggunakan pilih pernyataan di Golang dan berikan contoh untuk membantu Anda mencapai paralelisme, konkurensi, dan sinkronisasi dalam program Go.

Bagaimana Cara Menggunakan Pernyataan Pilih di Golang?

Mirip dengan pernyataan switch, the pilih pernyataan memungkinkan kita untuk memilih dan mengeksekusi satu ekspresi di antara banyak ekspresi, tetapi perbedaan utama antara Pilih dan beralih adalah bahwa pilih pernyataan berfungsi pada prinsip menunggu, yang berarti bahwa pilih pernyataan tidak akan dieksekusi sampai komunikasi selesai.







Di sini, komunikasi mengacu pada pengiriman dan penerimaan data melalui saluran tertentu. Saat komunikasi selesai, pemeriksaan selanjutnya dilakukan, memungkinkan kita untuk melihat bahwa pernyataan pemilihan bahasa Go sepenuhnya bergantung pada saluran.



Sintaks untuk Pernyataan Pilih

Sintaks sederhana yang digunakan untuk pilih pernyataan menggunakan bahasa Go ditunjukkan di bawah ini:



Pilih {
kasus saluran_1 :
// kode untuk dieksekusi saat channel_1 siap
kasus saluran_2 :
// kode untuk dieksekusi saat channel_2 siap
kasus saluran_3 :
// kode untuk dieksekusi saat channel_3 siap
kasus saluran_4 :
// kode untuk dieksekusi saat channel_4 siap
bawaan :
// kode untuk dijalankan jika tidak ada saluran yang siap
}

Di Sini:





  • Dalam a pilih pernyataan , setiap kasing mewakili operasi saluran, yang dapat berupa operasi penerimaan atau operasi pengiriman.
  • Itu pilih pernyataan menunggu sampai salah satu kasus siap dan kemudian menjalankannya dan pernyataan kasus terkait.
  • Itu secara acak memilih saluran jika ada beberapa saluran yang siap dieksekusi.

Cara Membuat Saluran di Golang

Untuk membuat saluran di Go, pengguna dapat menggunakan fungsi make diikuti dengan chan kata kunci dan tentukan jenis saluran, yang bisa berupa int, string, atau lainnya.

ch := membuat ( tipe chan )

Terapkan Pernyataan Pilih di Golang

Di sini, kami akan memberikan beberapa contoh untuk membantu Anda mempelajari dasar-dasar penggunaan pilih pernyataan di Golang.



Contoh 1

Contoh berikut dari pilih pernyataan mendemonstrasikan bagaimana kinerjanya ketika kedua saluran siap untuk dieksekusi.

paket utama

impor 'fmt'

fungsi utama ( ) {

pada satu := membuat ( chan int )

str := membuat ( tali chan )

pergi chan_num ( pada satu )

pergi chan_str ( str )

Pilih {

kasus Ch1 := <- pada satu :

fmt. Println ( 'Data Saluran:' , Ch1 )

kasus Ch2 := <- str :

fmt. Println ( 'Data Saluran:' , Ch2 )

}

}

func chan_num ( num chan int ) {

pada satu <- 67

}

func chan_str ( string str chan ) {

str <- 'Linux'

}

Dalam contoh di atas, kami membuat dua saluran, pada satu, Dan str dan kami menggunakan fungsi Go chan_num() untuk mengirim data ke saluran num dan chan_str() untuk mengirim data ke saluran str. Karena program berisi dua saluran yang berbeda, kami menggunakan pilih pernyataan untuk mengeksekusi salah satunya.

Kasus Ch1 membaca nilai dari saluran angka dan menampilkannya. Demikian pula, kasus Ch2 mengembalikan nilai dari str saluran. Program di atas mengembalikan keluaran saluran yang siap digunakan. Keluaran

Contoh 2

Jika Anda ingin menambahkan penundaan ke saluran dan mengembalikan keluaran saluran lain, Anda dapat menggunakan waktu tidur() berfungsi pada saluran tertentu. Ini memungkinkan Anda untuk mencetak output dari saluran lain ke konsol. Inilah contoh kasus seperti itu.

paket utama

impor (

'fmt'

'waktu'

)

fungsi utama ( ) {

pada satu := membuat ( chan int )

str := membuat ( tali chan )

pergi chan_num ( pada satu )

pergi chan_str ( str )

Pilih {

kasus Ch1 := <- pada satu :

fmt. Println ( 'Data Saluran:' , Ch1 )

kasus Ch2 := <- str :

fmt. Println ( 'Data Saluran:' , Ch2 )

}

}

func chan_num ( num chan int ) {

pada satu <- 67

}

func chan_str ( string str chan ) {

waktu . Tidur ( 5 * waktu . Kedua )

str <- 'Linux'

}

Dalam kode yang diberikan di atas, kami menggunakan waktu tidur() berfungsi di dalam chan_str() fungsi. Hanya saluran num yang siap dieksekusi selama 5 detik pertama. Akibatnya, pilih pernyataan menjalankan kasus Ch1 .

Keluaran

Catatan: Anda dapat menambahkan penundaan pada kedua saluran untuk menunda eksekusi saluran.

Kesimpulan

Itu pilih pernyataan in Go memungkinkan pemilihan dan eksekusi satu ekspresi dari banyak ekspresi menggunakan prinsip tunggu, di mana pernyataan tidak akan dieksekusi hingga komunikasi selesai. Pedoman tersebut di atas meliputi pilih pernyataan sintaks dasar dan contoh.