Kes yang perlu diketahui apabila menggunakan pernyataan pemilihan di Golang

Dalam bahasa Go, pernyataan pilih adalah seperti pernyataan suis , tetapi dalam pernyataan pilih, pernyataan kes merujuk kepada komunikasi, iaitu penghantaran atau penerimaan operasi pada saluran.

Kes yang perlu diketahui apabila menggunakan pernyataan pemilihan di Golang

Sintaks:

select{

case SendOrReceive1: // Lệnh
case SendOrReceive2: // Lệnh
case SendOrReceive3: // Lệnh
.......
default: // Lệnh

Dalam artikel ini, kita akan belajar cara menggunakan kes lalai untuk mengelakkan kebuntuan. Tetapi pertama-tama, mari kita ketahui apakah kes kebuntuan apabila menggunakan arahan pilih Golang ?

Perkara yang perlu diketahui mengenai kes kebuntuan di Golang

Jalan buntu: Apabila anda cuba membaca atau menulis data daripada saluran tetapi saluran itu kosong. Jadi ia menyekat pelaksanaan goroutine semasa dan memberikan kawalan kepada goroutine lain, tetapi jika tiada goroutine lain tersedia atau goroutine lain sedang berehat kerana keadaan ini, program akan ranap. Fenomena ini dipanggil kebuntuan. Seperti yang ditunjukkan dalam contoh di bawah:

Contohnya:

// Chương trình Go minh hoạc
// cách deadlock phát sinh
package main 

// Hàm chính
func main() { 

	// Tạo một kênh
	// Deadlock phát sinh bởi
	// không có goroutine đang viết
	// vào kênh này, vì thế
	// lệnh select đã bị khóa mãi mãi
	c := make(chan int) 
	select { 
	case <-c: }="" }="">

Keputusan:

fatal error: all goroutines are asleep - deadlock!

goroutine 1 [chan receive]:
main.main()

Untuk mengelakkan situasi ini, kami menggunakan kes lalai dalam pernyataan pilih. Dalam erti kata lain, apabila kebuntuan berlaku dalam atur cara, kes lalai bagi pernyataan pilih dilaksanakan untuk mengelakkan kebuntuan. Seperti dalam contoh di bawah, kami menggunakan kes lalai dalam pernyataan pilih untuk mengelakkan kebuntuan.

Contohnya:

// Chương trình Go minh họa cách giải quyết
// vấn đề deadlock bằng case mặc định
package main 

import "fmt"

// Hàm chính
func main() { 

	// Tạo 1 kênh
	c := make(chan int) 
	select { 
	case <-c: default:="" fmt.println("!..="" default="" case..!")="" }="" }="">

Keputusan:

!.. Default case..!

Anda juga dibenarkan menggunakan kes lalai apabila penyataan pilih hanya mempunyai saluran nol . Seperti yang ditunjukkan dalam contoh di bawah, saluran c adalah sifar, jadi kes lalai dilaksanakan jika kes lalai di sini tidak tersedia, maka program akan menyekat selama-lamanya dan kebuntuan timbul.

Contohnya:

// Chương trình Go minh họa
// chạy case mặc định
package main 

import "fmt"

// Hàm chính
func main() { 

	// Tạo một kênh
	var c chan int

	select { 
	case x1 := <-c: fmt.println("value:="" ",="" x1)="" default:="" fmt.println("default="" case..!")="" }="" }="">

Keputusan:

Default case..!
Sign up and earn $1000 a day ⋙

Leave a Comment

Kata kunci dalam Go

Kata kunci dalam Go

Kata kunci - Kata kunci ialah perkataan dalam bahasa yang digunakan untuk beberapa proses dalaman atau mewakili beberapa tindakan yang dipratentukan. Berikut adalah perkara yang anda perlu tahu tentang kata kunci di Golang.

Jenis data di Golang

Jenis data di Golang

Jenis data menentukan jenis data pembolehubah Go yang sah boleh mengandungi. Dalam bahasa Go, jenis dibahagikan kepada empat kategori seperti berikut:

Hujah fungsi di Golang

Hujah fungsi di Golang

Go menyokong dua cara utama untuk meluluskan hujah: Lulus dengan nilai dan Lulus dengan rujukan. Go menggunakan nilai pas secara lalai.

Fungsi mengembalikan berbilang nilai dalam Golang

Fungsi mengembalikan berbilang nilai dalam Golang

Dalam bahasa Go, anda dibenarkan untuk mengembalikan berbilang nilai daripada fungsi, menggunakan pernyataan pulangan. Dalam erti kata lain, dalam fungsi, pernyataan pulangan boleh mengembalikan berbilang nilai.

Tukar Kenyataan dalam Go

Tukar Kenyataan dalam Go

Golang seperti kebanyakan bahasa pengaturcaraan lain mempunyai pernyataan suis. Berikut ialah cara menggunakan pernyataan suis dalam Golang.

Struktur dan medan tanpa nama di Golang

Struktur dan medan tanpa nama di Golang

Struktur tanpa nama di Golang ialah struktur sementara tanpa nama yang digunakan untuk tujuan sekali sahaja, manakala medan tanpa nama membenarkan pembenaman medan tanpa nama.

Cara menggunakan Rune di Golang

Cara menggunakan Rune di Golang

Apakah Runes di Golang? Bagaimana untuk menggunakan Rune di Golang? Artikel itu akan memberitahu anda jawapannya.

Pengecam tidak sah di Golang

Pengecam tidak sah di Golang

_(garis bawah) dalam Golang dipanggil Pengecam Kosong. Pengecam ialah nama yang ditentukan pengguna bagi komponen program yang digunakan untuk tujuan pengenalan.

Cara membuat program asas di Golang

Cara membuat program asas di Golang

Hello, Dunia! ialah program asas pertama dalam mana-mana bahasa pengaturcaraan. Anda boleh menulis program pertama ini di Golang mengikut langkah-langkah di bawah.

Cara Memasang Go pada Windows

Cara Memasang Go pada Windows

Golang boleh dipasang dengan mudah pada Windows. Di bawah ialah panduan langkah demi langkah terperinci untuk memasang Golang pada Windows.

Kaedah dengan nama yang sama di Golang

Kaedah dengan nama yang sama di Golang

Golang membenarkan mencipta dua atau lebih kaedah dengan nama yang sama dalam pakej yang sama, tetapi penerima kaedah ini mestilah daripada jenis yang berbeza.

Fungsi dalam Go

Fungsi dalam Go

Dalam Go, fungsi ialah blok kod yang melaksanakan tugas tertentu, yang boleh digunakan semula sepanjang program untuk menjimatkan memori, meningkatkan kebolehbacaan dan menjimatkan masa.

Skop Pembolehubah dalam Go

Skop Pembolehubah dalam Go

Skop pembolehubah dalam Golang menentukan bahagian program di mana pembolehubah itu boleh diakses. Dalam Go, semua pengecam mempunyai skop leksikal yang ditentukan pada masa penyusunan.

Pernyataan Kawalan dalam Golang (jika, jika-lain, Bersarang-jika)

Pernyataan Kawalan dalam Golang (jika, jika-lain, Bersarang-jika)

Apakah pernyataan bersyarat yang ada pada Golang? Bagaimana untuk menggunakan pernyataan bersyarat dalam pengaturcaraan Go? Mari kita ketahui bersama!

Bagaimana untuk bertukar antara Outlook lama dan Outlook baharu

Bagaimana untuk bertukar antara Outlook lama dan Outlook baharu

Bukan semua orang biasa dengan antara muka Outlook baharu dan mahu kembali ke Outlook lama untuk menggunakan ciri penuh dan lebih banyak penyesuaian pada Outlook. Berikut ialah arahan untuk bertukar antara Outlook lama dan Outlook baharu.

Ketahui Mengenai Peta Organik: Alternatif Sumber Terbuka kepada Peta Google

Ketahui Mengenai Peta Organik: Alternatif Sumber Terbuka kepada Peta Google

Peta Organik ialah apl pemetaan sumber terbuka percuma untuk Android dan iOS, dibangunkan oleh pasukan yang sama di belakang MapsWithMe, yang pertama kali dilancarkan pada tahun 2011.

6 langkah untuk mencuci kasut di mesin basuh tanpa bimbang tentang kerosakan

6 langkah untuk mencuci kasut di mesin basuh tanpa bimbang tentang kerosakan

Nampaknya membasuh kasut dalam mesin basuh adalah larangan mutlak, tetapi dengan hanya 6 langkah mudah di bawah, anda boleh mencuci kasut anda sepenuhnya dalam mesin basuh tanpa perlu risau tentang kerosakan.

9 sebab mengapa peti sejuk tidak membeku dan cara membaikinya

9 sebab mengapa peti sejuk tidak membeku dan cara membaikinya

Terdapat 9 sebab mengapa peti sejuk tidak membeku. Artikel kami di bawah akan meringkaskan sebab biasa dan cara menangani situasi ini.

Sudah tiba masanya untuk beralih kepada Passkey: Alternatif kata laluan anti-pancingan data!

Sudah tiba masanya untuk beralih kepada Passkey: Alternatif kata laluan anti-pancingan data!

Dengan kunci laluan, alternatif moden kepada kata laluan tradisional, anda tidak perlu risau tentang mengingati, mengurus (dengan atau tanpa pengurus kata laluan) atau menetapkan semula kata laluan anda sekali lagi.

Cara membuat sandaran penyemak imbas: Penanda halaman, sambungan, kata laluan, dsb.

Cara membuat sandaran penyemak imbas: Penanda halaman, sambungan, kata laluan, dsb.

Sama ada anda menukar penyemak imbas secara kekal atau hanya ingin mengurangkan kemungkinan kehilangan data, anda perlu membuat sandaran penyemak imbas anda secara berkala.

Mengapakah kerbau dan lembu hanya perlu makan rumput untuk mendapatkan nutrien yang mencukupi?

Mengapakah kerbau dan lembu hanya perlu makan rumput untuk mendapatkan nutrien yang mencukupi?

Kenapa lembu makan rumput dan masih gemuk dan menghasilkan susu yang berkhasiat? Jika anda ingin tahu mengapa herbivor gemuk, sila baca artikel di bawah.

Suplemen yang tidak boleh diambil oleh orang yang mengalami sindrom usus besar

Suplemen yang tidak boleh diambil oleh orang yang mengalami sindrom usus besar

Tidak semua suplemen bermanfaat untuk sindrom usus besar (IBS), malah ada yang boleh memburukkan lagi gejala anda.

6 Apl iMessage untuk Sembang Kumpulan

6 Apl iMessage untuk Sembang Kumpulan

Terdapat banyak apl iMessage untuk anda pasang untuk sembang kumpulan, meningkatkan pengalaman dengan ahli kumpulan. Berikut ialah senarai 6 aplikasi iMessage untuk sembang kumpulan.

Bagaimana untuk menggantikan bateri CMOS

Bagaimana untuk menggantikan bateri CMOS

Jika komputer anda kehilangan tetapan masa atau tarikhnya atau memaparkan Ralat Bacaan CMOS, Ralat Semakan CMOS atau mesej Kegagalan Bateri CMOS, bateri CMOS perlu diganti.

Kod Pemimpin Super Beast terkini dan cara memasukkan kod

Kod Pemimpin Super Beast terkini dan cara memasukkan kod

Kod Pemimpin Super Beast akan membantu anda mencapai ganjaran yang menarik untuk menyokong pemain menjadi jurulatih super. Di bawah ialah senarai kod Super Beast Leader terkini dan cara memasukkan kod tersebut.

Bagaimana untuk menetapkan pemasa penghawa dingin Daikin untuk menghidupkan dan mematikan pada masa yang dikehendaki

Bagaimana untuk menetapkan pemasa penghawa dingin Daikin untuk menghidupkan dan mematikan pada masa yang dikehendaki

Pemasa penghawa dingin Daikin adalah salah satu ciri berguna yang sering digunakan pengguna untuk menetapkan pemasa untuk menghidupkan penghawa dingin sebelum pulang atau mematikan penghawa dingin semasa tidur.

Mengapa pemasa pada mesin basuh sering salah

Mengapa pemasa pada mesin basuh sering salah

Kebanyakan mesin basuh hari ini mempunyai masa paparan dan perbezaan masa basuh sebenar 10 hingga 20 minit.

Bagaimana untuk menggantikan bateri untuk alat kawalan jauh penghawa dingin Toshiba

Bagaimana untuk menggantikan bateri untuk alat kawalan jauh penghawa dingin Toshiba

Bagaimana untuk menggantikan bateri untuk alat kawalan jauh penghawa dingin Toshiba? Sila baca artikel di bawah untuk mengetahui cara menggantikan bateri untuk alat kawalan jauh penghawa dingin Toshiba.

Ringkasan kod Hero AFK: VNG Royal War terkini

Ringkasan kod Hero AFK: VNG Royal War terkini

Memasukkan kod hadiah Hero AFK: Perang VNG akan membantu anda menerima banyak item dalam permainan yang berharga. Temui sekarang