Bahasa Go dilahirkan di Google untuk menyelesaikan masalah kerumitan dan sokongan serentak C++ yang tidak mencukupi. Hasrat asalnya ialah untuk mencipta bahasa serentak yang ringkas, mudah dipelajari, cekap, selamat memori, dan merentas platform untuk meningkatkan produktiviti pengaturcara, membina sistem yang boleh dipercayai dan berskala serta menggalakkan pemindahan dan perkongsian kod.
Latar belakang dan niat asal bahasa Go
Latar belakang bahasa Go
Pada awal 2000-an, jurutera Google bergelut menggunakan C++ untuk membangunkan sistem berskala besar. Walaupun C++ berkuasa, ia kompleks, mudah ralat dan tidak mempunyai sokongan serentak terbina dalam.
Untuk menyelesaikan masalah ini, jurutera Google Robert Griesemer, Rob Pike dan Ken Thompson mula meneroka reka bentuk bahasa pengaturcaraan baharu, yang akan mempunyai ciri-ciri berikut:
Niat asal bahasa Go
Niat asal bahasa Go ialah untuk mencipta bahasa yang sesuai untuk pembangunan sistem teragihan berskala besar di Google. Bahasa ini bertujuan untuk:
Kes praktikal
Program bahasa Go yang ringkas menunjukkan ciri-ciri serentak:
package main import ( "fmt" "time" ) func main() { // 创建一个并发管道 ch := make(chan int) // 启动一个协程发送数据到管道 go func() { for i := 0; i < 10; i++ { time.Sleep(time.Second) ch <- i } }() // 主协程从管道接收数据 for { data, ok := <-ch if !ok { break } fmt.Println(data) } }
Dalam program ini, kami akan mencipta saluran paipch
untuk komunikasi data antara coroutine. Coroutine secara berterusan menghantar data ke paip di latar belakang, dan coroutine utama menerima data daripada paip dan mencetaknya. Ini menunjukkan cara pengaturcaraan serentak yang mudah dan cekap dalam bahasa Go.
Atas ialah kandungan terperinci Latar belakang kelahiran dan niat asal bahasa Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!