informasi kontak saya
Surat[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Bahasa Go, juga dikenal sebagai Golang, adalah bahasa pemrograman sumber terbuka yang dirancang oleh Google. Ini dirancang untuk memberikan kecepatan pengembangan yang efisien, kinerja yang baik, sintaksis yang ringkas, dan perpustakaan standar yang kuat. Bahasa Go sangat cocok untuk membangun sistem terdistribusi berskala besar dan arsitektur layanan mikro. Artikel ini akan membantu Anda mempelajari bahasa Go dari awal, mencakup sintaksis dasar, fitur lanjutan, praktik terbaik, dan aplikasi praktis.
Lihat kode sumber proyek di bagian bawah
Pertama, Anda perlu menginstal lingkungan Go di komputer Anda. Kunjungi situs resmi Go (https://golang.org/dl/) Unduh paket bahasa Go yang sesuai dengan sistem operasi Anda dan ikuti petunjuk untuk menginstalnya.
Pergi
versi gelap
- 1package main
- 2
- 3import "fmt"
- 4
- 5func main() {
- 6 fmt.Println("Hello, World!")
- 7}
Bahasa Go menyediakan berbagai tipe data bawaan, termasuk integer (int, int8, int16, int32, int64), tipe floating point (float32, float64), Boolean (bool), string (string), dll.
Bahasa Go mendukung pernyataan if, perulangan for, pernyataan switch dan pernyataan defer untuk mengontrol aliran program.
Fungsi adalah unit eksekusi dasar bahasa Go. Fungsi dapat menerima parameter dan mengembalikan hasil.
Pergi
versi gelap
- 1func add(x int, y int) int {
- 2 return x + y
- 3}
Pointer digunakan dalam bahasa Go untuk memanipulasi alamat memori secara langsung.dengan menggunakan*
Dan&
Operator, Anda bisa mendapatkan alamat suatu variabel dan nilai yang ditunjuk oleh alamat tersebut.
Pergi
versi gelap
- 1func increment(p *int) {
- 2 *p++
- 3}
Antarmuka di Go mendefinisikan sekumpulan metode yang harus diimplementasikan oleh suatu tipe. Antarmuka membuat kode lebih fleksibel dan dapat digunakan kembali.
Pergi
versi gelap
- 1type Shape interface {
- 2 Area() float64
- 3}
- 4
- 5type Circle struct {
- 6 Radius float64
- 7}
- 8
- 9func (c Circle) Area() float64 {
- 10 return math.Pi * c.Radius * c.Radius
- 11}
Bahasa Go merekomendasikan penggunaan nilai pengembalian kesalahan untuk menangani pengecualian.
Pergi
versi gelap
- 1func divide(x, y int) (int, error) {
- 2 if y == 0 {
- 3 return 0, errors.New("cannot divide by zero")
- 4 }
- 5 return x / y, nil
- 6}
Model konkurensi bahasa Go didasarkan pada goroutine dan saluran yang ringan. Goroutine adalah thread tingkat pengguna dalam bahasa Go, dan saluran digunakan untuk komunikasi dan sinkronisasi antar goroutine.
Pergi
versi gelap
- 1func say(s string) {
- 2 for i := 0; i < 5; i++ {
- 3 fmt.Println(s)
- 4 }
- 5}
- 6
- 7func main() {
- 8 go say("world") // 开始一个新的goroutine
- 9 say("hello")
- 10}
Konteks digunakan untuk meneruskan sinyal pembatalan antar goroutine, sehingga memungkinkan program menghentikan goroutine yang sudah berjalan lama dengan baik.
Pergi
versi gelap
- 1func main() {
- 2 ctx, cancel := context.WithCancel(context.Background())
- 3 go func() {
- 4 select {
- 5 case <-ctx.Done():
- 6 fmt.Println("operation canceled")
- 7 case <-time.After(time.Second * 3):
- 8 fmt.Println("operation completed")
- 9 }
- 10 }()
- 11 time.Sleep(time.Second)
- 12 cancel()
- 13}
Bahasa Go merekomendasikan penggunaan pendekatan modular untuk mengatur kode. Setiap direktori mewakili sebuah paket dan mendefinisikan satu atau lebih file .go di dalamnya.
Sistem modul Go (go mod
) digunakan untuk mengelola ketergantungan eksternal proyek.menggunakango get
Dango mod tidy
Perintah untuk menambah dan mengatur dependensi.
Bahasa Go memiliki kerangka pengujian yang kuat, gunakantesting
paket untuk menulis kasus uji.
Pergi
versi gelap
- 1import (
- 2 "testing"
- 3)
- 4
- 5func TestAdd(t *testing.T) {
- 6 tests := []struct {
- 7 x, y, want int
- 8 }{
- 9 {2, 2, 4},
- 10 {1, 3, 4},
- 11 {0, 0, 0},
- 12 }
- 13 for _, tt := range tests {
- 14 got := add(tt.x, tt.y)
- 15 if got != tt.want {
- 16 t.Errorf("add(%d, %d) = %d; want %d", tt.x, tt.y, got, tt.want)
- 17 }
- 18 }
- 19}
menggunakango build
Perintah untuk membuat file yang dapat dieksekusi, gunakango install
Instal proyek ke dalam$GOPATH/bin
direktori untuk memfasilitasi panggilan sistem.
Bahasa Go banyak digunakan dalam layanan back-end, pemrograman jaringan, arsitektur layanan mikro, alat DevOps, database, middleware, dan skenario lainnya.
Sifat konkurensi yang tinggi dari bahasa Go menjadikannya pilihan ideal untuk membangun layanan mikro.
Pustaka standar bahasa Go menyediakan API pemrograman jaringan yang kaya, termasuk server HTTP, klien, WebSocket, TCP/IP, dll.
Bahasa Go memiliki kecepatan kompilasi yang cepat dan portabilitas yang kuat, serta cocok untuk mengembangkan alat DevOps, seperti orkestrasi container, integrasi berkelanjutan, dan alat penerapan berkelanjutan.
Bahasa Go secara bertahap menjadi salah satu bahasa utama untuk pengembangan perangkat lunak modern dengan sintaksisnya yang ringkas, pustaka standar yang kuat, dan model konkurensi yang efisien. Dengan mempelajari artikel ini, Anda tidak hanya akan menguasai pengetahuan dasar bahasa Go, namun juga memahami fitur-fitur canggih dan praktik terbaiknya, sehingga meletakkan dasar yang kuat untuk pengembangan bahasa Go di masa depan. Baik Anda membangun layanan back-end berkinerja tinggi atau mengembangkan sistem terdistribusi yang kompleks, bahasa Go akan menjadi mitra yang sangat diperlukan.
Alamat pengunduhan kode sumber proyek:https://download.csdn.net/download/qq_42072014/89531977