Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah jenis golang?

Apakah jenis golang?

王林
王林asal
2023-05-10 10:56:071055semak imbas

Go ialah bahasa pengaturcaraan ditaip secara statik yang menyokong pelbagai jenis termasuk jenis asas, struktur, tatasusunan dan kepingan, peta, antara muka dan fungsi yang biasa digunakan. Berikut ialah beberapa jenis bahasa Go yang biasa digunakan:

  1. Jenis asas

Bahasa Go menyokong jenis asas standard, seperti Boolean, integer, titik terapung dan rentetan serta aksara menaip.

  • Jenis Boolean: jenis bool, hanya nilai Boolean benar dan salah.
  • Jenis integer: int, int8, int16, int32, int64, uint, uint8, uint16, uint32 dan uint64, masing-masing mewakili integer yang ditandatangani dan integer tidak ditandatangani, dengan saiz masing-masing 8, 16, 32 dan 64 bit
  • Jenis titik terapung: float32 dan float64, masing-masing mewakili nombor titik terapung 32-bit dan 64-bit.
  • Jenis aksara: jenis rune, yang merupakan pengekodan aksara Unikod.
  1. Struktur

Struktur dalam bahasa Go ialah jenis komposit yang ditentukan pengguna yang boleh mengandungi berbilang medan jenis yang berbeza. Struktur boleh digunakan untuk mewakili beberapa jenis data yang kompleks. Medan dalam struktur boleh terdiri daripada sebarang jenis, termasuk jenis struktur lain.

Contohnya:

type Person struct {
    Name   string
    Age    int
    Height float32
}
  1. Array dan hirisan

Array juga merupakan jenis asas dalam bahasa Go. Tatasusunan mempunyai saiz tetap, dan panjang tatasusunan perlu ditentukan semasa menentukan. Potongan ialah rujukan kepada tatasusunan, ruang yang diperuntukkan secara dinamik dan boleh ditambah atau dikurangkan pada bila-bila masa. Anda boleh menggunakan fungsi terbina dalam len() untuk mendapatkan panjang kepingan.

Contohnya:

var array [3]int // 定义一个长度为3的数组
slice := []int{1, 2, 3, 4, 5} // 定义一个切片
  1. Peta

Peta ialah struktur data pasangan nilai kunci, serupa dengan kamus atau jadual cincang dalam yang lain bahasa . Dalam bahasa Go, pemetaan diwakili menggunakan jenis peta terbina dalam. Anda boleh menggunakan fungsi make() untuk mencipta peta, dan kemudian gunakan operator [] untuk mengakses elemen dalam peta.

Contohnya:

scores := make(map[string]int) // 创建一个名为scores的映射
scores["Alice"] = 85 // 添加一个键值对
  1. Antaramuka

Antara muka ialah jenis data abstrak yang boleh mentakrifkan set kaedah tanpa melaksanakan kod tertentu. Dalam jenis yang melaksanakan antara muka, semua kaedah yang ditakrifkan dalam antara muka perlu dilaksanakan. Antara muka boleh menjadikan kod lebih fleksibel, boleh dikembangkan dan boleh diselenggara.

Contohnya:

type Shape interface {
    Area() float64
    Perimeter() float64
}

type Rectangle struct {
    Width  float64
    Height float64
}

func (r Rectangle) Area() float64 {
    return r.Width * r.Height
}

func (r Rectangle) Perimeter() float64 {
    return 2 * (r.Width + r.Height)
}
  1. Jenis fungsi

Fungsi ialah warga kelas pertama dalam bahasa Go Mereka boleh dihantar, ditugaskan dan dikembalikan. Dalam bahasa Go, fungsi juga merupakan jenis, dan jenis fungsi boleh ditakrifkan sebagai parameter atau nilai pulangan.

Contohnya:

type Operation func(int, int) int

func Add(a, b int) int {
    return a + b
}

func Sub(a, b int) int {
    return a - b
}

func calc(op Operation, a, b int) int {
    return op(a, b)
}

sum := calc(Add, 10, 20) // 调用calc函数,传入Add函数作为参数
diff := calc(Sub, 30, 15) // 调用calc函数,传入Sub函数作为参数

Di atas ialah beberapa jenis bahasa Go yang biasa digunakan juga menyokong jenis lain, seperti saluran, penunjuk, dsb. Menguasai jenis ini sangat penting untuk menulis kod Go yang berkualiti tinggi dan boleh dibaca.

Atas ialah kandungan terperinci Apakah jenis golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:tetapan pemasangan golangArtikel seterusnya:tetapan pemasangan golang