Kemunculan bahasa Go menjadikan pembangunan kami lebih cekap, selamat dan lebih mudah. Dengan gaya kod yang ringkas dan prestasi yang cekap, ia telah menjadi pilihan pertama banyak pembangun dan syarikat. Walau bagaimanapun, semasa kami memperdalam pemahaman dan penggunaan bahasa Go, kadangkala kami memerlukan kaedah penulisan yang lebih maju dan fleksibel untuk menampung keperluan kerja yang berbeza. Jadi, berikut adalah beberapa penggunaan lanjutan Golang.
defer
adalah ciri utama bahasa Go Ia membenarkan fungsi untuk melaksanakan pernyataan berikut selepas ia dilaksanakan. Contohnya:
func f() (n int) { defer func() { n++ }() return 1 } func main() { i := f() println(i) }
Hasil larian ialah 2, dan 2 dikembalikan selepas melaksanakan n++
. Apa yang perlu diperhatikan di sini ialah defer
hanya akan dilaksanakan selepas fungsi selesai melaksanakan, walaupun panic
muncul dalam fungsi.
Penegasan jenis boleh menukar jenis antara muka kepada jenis antara muka lain atau jenis konkrit. Contohnya:
var obj interface{} var str string = "hello" obj = str if s, ok := obj.(string); ok { fmt.Println(s) }
Di sini str
diperuntukkan kepada pembolehubah jenis antara muka obj
, dan kemudian gunakan penegasan jenis untuk menukar obj
kepada jenis string
dan membuat pertimbangan jika berjaya , cetak hello
. Perlu diingat bahawa jika penukaran gagal semasa penegasan jenis, palsu akan dikembalikan dan bukannya panik.
range
pernyataan boleh digunakan untuk menggelung dan mengulang tatasusunan, kepingan, peta, rentetan, saluran dan jenis lain. Contohnya:
for i, v := range []int{1, 2, 3} { fmt.Println(i, v) }
Di sini, gelung range
digunakan untuk mengulang hirisan jenis int Nilai pertama ialah indeks, dan nilai kedua ialah nilai dalam kepingan.
Kaedah tersuai dalam bahasa Go adalah serupa dengan kaedah dalam Java dan kaedah boleh ditakrifkan untuk sebarang jenis. Contohnya:
type MyInt int func (m MyInt) Plus(n int) int { return int(m) + n } func main() { var m MyInt = 1 fmt.Println(m.Plus(2)) }
Di sini mentakrifkan jenis tersuai MyInt
, dan kemudian mentakrifkan kaedah Plus
untuknya. Operasi tambah dilaksanakan dengan menukar jenis MyInt
kepada jenis int
.
Fungsi penutupan merujuk kepada fungsi yang boleh mengakses pembolehubah bebas. Contohnya:
func Adder() func(int) int { sum := 0 return func(x int) int { sum += x return sum } } func main() { a := Adder() fmt.Println(a(1)) fmt.Println(a(2)) }
Di sini mentakrifkan fungsi func(int) int
dengan jenis pulangan Adder
, yang mengembalikan fungsi dalaman. Fungsi dalaman ini mempunyai akses kepada pembolehubah bebas Adder
dalam fungsi sum
dan menambah x
kepada sum
.
Melalui penggunaan lanjutan di atas, kami dapat mengatasi keperluan pembangunan bahasa Go yang berbeza dengan lebih baik dan menjadikan kod kami lebih ringkas dan fleksibel. Saya harap artikel ini akan membantu kebanyakan pembangun bahasa Go.
Atas ialah kandungan terperinci Mari kita bincangkan tentang beberapa penggunaan lanjutan Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!