Berbagi teknologi

Buka tutorial rinci bahasa

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

1. Dasar-dasar bahasa Go

1.1 Instal lingkungan Go

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.

1.2 Program Halo Dunia

Pergi

versi gelap

  1. 1package main
  2. 2
  3. 3import "fmt"
  4. 4
  5. 5func main() {
  6. 6 fmt.Println("Hello, World!")
  7. 7}

1.3 Tipe data

Bahasa Go menyediakan berbagai tipe data bawaan, termasuk integer (int, int8, int16, int32, int64), tipe floating point (float32, float64), Boolean (bool), string (string), dll.

1.4 Struktur kendali

Bahasa Go mendukung pernyataan if, perulangan for, pernyataan switch dan pernyataan defer untuk mengontrol aliran program.

1.5 Fungsi

Fungsi adalah unit eksekusi dasar bahasa Go. Fungsi dapat menerima parameter dan mengembalikan hasil.

Pergi

versi gelap

  1. 1func add(x int, y int) int {
  2. 2 return x + y
  3. 3}

1.6 Petunjuk

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

  1. 1func increment(p *int) {
  2. 2 *p++
  3. 3}

2. Bahasa Go tingkat lanjut

2.1 Antarmuka

Antarmuka di Go mendefinisikan sekumpulan metode yang harus diimplementasikan oleh suatu tipe. Antarmuka membuat kode lebih fleksibel dan dapat digunakan kembali.

Pergi

versi gelap

  1. 1type Shape interface {
  2. 2 Area() float64
  3. 3}
  4. 4
  5. 5type Circle struct {
  6. 6 Radius float64
  7. 7}
  8. 8
  9. 9func (c Circle) Area() float64 {
  10. 10 return math.Pi * c.Radius * c.Radius
  11. 11}

2.2 Penanganan kesalahan

Bahasa Go merekomendasikan penggunaan nilai pengembalian kesalahan untuk menangani pengecualian.

Pergi

versi gelap

  1. 1func divide(x, y int) (int, error) {
  2. 2 if y == 0 {
  3. 3 return 0, errors.New("cannot divide by zero")
  4. 4 }
  5. 5 return x / y, nil
  6. 6}

2.3 Konkurensi dan goroutine

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

  1. 1func say(s string) {
  2. 2 for i := 0; i < 5; i++ {
  3. 3 fmt.Println(s)
  4. 4 }
  5. 5}
  6. 6
  7. 7func main() {
  8. 8 go say("world") // 开始一个新的goroutine
  9. 9 say("hello")
  10. 10}

2.4 Konteks

Konteks digunakan untuk meneruskan sinyal pembatalan antar goroutine, sehingga memungkinkan program menghentikan goroutine yang sudah berjalan lama dengan baik.

Pergi

versi gelap

  1. 1func main() {
  2. 2 ctx, cancel := context.WithCancel(context.Background())
  3. 3 go func() {
  4. 4 select {
  5. 5 case <-ctx.Done():
  6. 6 fmt.Println("operation canceled")
  7. 7 case <-time.After(time.Second * 3):
  8. 8 fmt.Println("operation completed")
  9. 9 }
  10. 10 }()
  11. 11 time.Sleep(time.Second)
  12. 12 cancel()
  13. 13}

3. Lakukan praktik terbaik bahasa

3.1 Organisasi kode

Bahasa Go merekomendasikan penggunaan pendekatan modular untuk mengatur kode. Setiap direktori mewakili sebuah paket dan mendefinisikan satu atau lebih file .go di dalamnya.

3.2 Manajemen ketergantungan

Sistem modul Go (go mod ) digunakan untuk mengelola ketergantungan eksternal proyek.menggunakango getDango mod tidyPerintah untuk menambah dan mengatur dependensi.

3.3 Pengujian

Bahasa Go memiliki kerangka pengujian yang kuat, gunakantestingpaket untuk menulis kasus uji.

Pergi

versi gelap

  1. 1import (
  2. 2 "testing"
  3. 3)
  4. 4
  5. 5func TestAdd(t *testing.T) {
  6. 6 tests := []struct {
  7. 7 x, y, want int
  8. 8 }{
  9. 9 {2, 2, 4},
  10. 10 {1, 3, 4},
  11. 11 {0, 0, 0},
  12. 12 }
  13. 13 for _, tt := range tests {
  14. 14 got := add(tt.x, tt.y)
  15. 15 if got != tt.want {
  16. 16 t.Errorf("add(%d, %d) = %d; want %d", tt.x, tt.y, got, tt.want)
  17. 17 }
  18. 18 }
  19. 19}

3.4 Membangun dan menerapkan

menggunakango buildPerintah untuk membuat file yang dapat dieksekusi, gunakango installInstal proyek ke dalam$GOPATH/bindirektori untuk memfasilitasi panggilan sistem.

4. Penerapan praktis bahasa Go

Bahasa Go banyak digunakan dalam layanan back-end, pemrograman jaringan, arsitektur layanan mikro, alat DevOps, database, middleware, dan skenario lainnya.

4.1 Arsitektur layanan mikro

Sifat konkurensi yang tinggi dari bahasa Go menjadikannya pilihan ideal untuk membangun layanan mikro.

4.2 Pemrograman jaringan

Pustaka standar bahasa Go menyediakan API pemrograman jaringan yang kaya, termasuk server HTTP, klien, WebSocket, TCP/IP, dll.

4.3 Alat DevOps

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.

5. Ringkasan

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