Rumah > Artikel > pembangunan bahagian belakang > Mengapa input.Text() Dinilai Sebelum Rutin Pergi Bermula?
Mengapa input.Text() Dinilai dalam Goroutine Utama?
Dalam Go, argumen yang dihantar ke fungsi digunakan serentak dengan kata kunci go dinilai serta-merta. Ini berbeza daripada panggilan fungsi biasa di mana penilaian hujah berlaku apabila fungsi itu benar-benar dilaksanakan. Dalam kes echoServer, input argumen.Text() dinilai dalam goroutine utama pada masa pernyataan go dilaksanakan.
Sebab Penilaian Segera
Penilaian segera bagi hujah fungsi dalam goroutine memastikan berikut:
Contoh Ilustrasi
Pertimbangkan perkara berikut contoh:
package main import ( "fmt" "time" ) func main() { i := 1 go func(i int) { fmt.Println(i) // => 1 i++ }(i) i++ }
Jika penilaian input.Text() berlaku semasa pelaksanaan pernyataan go, nilai i akan menjadi 2 disebabkan oleh penilaian segera. Walau bagaimanapun, jika ia dinilai semasa pelaksanaan goroutine, pembolehubah i akan dinaikkan dan akan dicetak 3.
Kesimpulan
Penilaian segera argumen fungsi dalam goroutine adalah aspek penting model konkurensi Go. Ia memastikan ketepatan, kecekapan dan penentuan program serentak.
Atas ialah kandungan terperinci Mengapa input.Text() Dinilai Sebelum Rutin Pergi Bermula?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!