Golang ialah bahasa pengaturcaraan yang sangat popular Sintaksnya yang ringkas, ciri prestasi tinggi dan konkurensi menjadikannya digunakan secara meluas dalam aplikasi web, pengaturcaraan rangkaian dan bidang lain. Dalam Go, mengubah suai nilai pembolehubah mungkin tidak mudah difahami Artikel ini akan memperkenalkan secara terperinci cara mengubah suai nilai dalam Go.
Di Golang, parameter fungsi boleh dihantar mengikut nilai atau rujukan. Melepasi nilai bermakna menghantar salinan nilai parameter ke fungsi Pengubahsuaian kepada nilai parameter dalam fungsi tidak akan menjejaskan nilai di luar fungsi. Lulus melalui rujukan merujuk kepada menghantar parameter sebagai penunjuk kepada fungsi, dan pengubahsuaian kepada penunjuk dalam fungsi akan ditunjukkan di luar fungsi.
Kod sampel adalah seperti berikut:
package main import "fmt" func main() { var x int = 10 fmt.Println("before call:", x) modifyValue(x) fmt.Println("after call:", x) modifyPointer(&x) fmt.Println("after call:", x) } func modifyValue(x int) { x = x + 1 fmt.Println("in func:", x) } func modifyPointer(x *int) { *x = *x + 1 fmt.Println("in func:", *x) }
Kod ini mentakrifkan dua fungsi modifyValue
dan modifyPointer
, satu untuk mengubah suai nilai dan satu untuk mengubah suai penunjuk. Dalam fungsi main
, kami mentakrifkan pembolehubah integer x
dan memulakannya kepada 10, dan kemudian memanggil modifyValue
dan modifyPointer
masing-masing.
Apabila kita melaksanakan program ini, hasil output adalah seperti berikut:
before call: 10 in func: 11 after call: 10 in func: 11 after call: 11
Memerhatikan output, kita boleh mendapati bahawa apabila modifyValue
dipanggil, walaupun nilai parameter adalah diubah suai dalam fungsi, nilai di luar fungsi Nilai tidak berubah apabila modifyPointer
dipanggil, nilai yang ditunjuk oleh penunjuk dinaikkan satu dalam fungsi dan nilai di luar fungsi juga menjadi 11 dengan sewajarnya. Ini ialah perbezaan antara lulus dengan nilai dan lulus dengan rujukan.
Memahami perbezaan antara lulus nilai dan lulus rujukan, kita boleh mula memperkenalkan cara mengubah suai nilai di Golang.
Di Golang, elemen dalam tatasusunan dan kepingan boleh diakses melalui indeks, dan nilai elemen boleh diubah suai melalui indeks.
Kod sampel adalah seperti berikut:
package main import "fmt" func main() { var arr [3]int = [3]int{1, 2, 3} fmt.Println("before modify:", arr) arr[1] = 4 fmt.Println("after modify:", arr) var slc []int = []int {1, 2, 3} fmt.Println("before modify:", slc) slc[1] = 4 fmt.Println("after modify:", slc) }
Kod ini mentakrifkan tatasusunan integer panjang 3 arr
dan hirisan integer slc
, dan kemudian melaksanakan tatasusunan dan jujukan kepingan Ubah suai elemen kedua dalam .
Apabila kami melaksanakan program ini, output adalah seperti berikut:
before modify: [1 2 3] after modify: [1 4 3] before modify: [1 2 3] after modify: [1 4 3]
Di Golang, Map ialah struktur pasangan nilai kunci yang boleh diakses dengan nama kunci Akses dan ubah suai nilai dalam Peta.
Kod sampel adalah seperti berikut:
package main import "fmt" func main() { var m map[string]int = map[string]int{"apple": 1, "banana": 2, "orange": 3} fmt.Println("before modify:", m) m["banana"] = 4 fmt.Println("after modify:", m) }
Kod ini mentakrifkan Peta daripada rentetan kepada integer, dan kemudian mengubah suai nilai dalam Peta melalui nama kunci.
Apabila kita melaksanakan program ini, output adalah seperti berikut:
before modify: map[apple:1 banana:2 orange:3] after modify: map[apple:1 banana:4 orange:3]
Di Golang, struktur ialah jenis komposit yang ditentukan pengguna yang boleh Menentukan ahli struktur dan akses serta ubah suai nilai mereka menggunakan sintaks titik.
Kod sampel adalah seperti berikut:
package main import "fmt" type Person struct { Name string Age int } func main() { var p Person = Person{"Tom", 20} fmt.Println("before modify:", p) p.Age = 21 fmt.Println("after modify:", p) }
Kod ini mentakrifkan jenis struktur bernama Person
, yang mengandungi ahli jenis rentetan Name
dan ahli Jenis integer Age
, kemudian mentakrifkan pembolehubah struktur bernama p
dan memberikan nilai awal, dan akhirnya mengubah suai nilai ahli struktur.
Apabila kita melaksanakan program ini, hasil output adalah seperti berikut:
before modify: {Tom 20} after modify: {Tom 21}
Pembolehubah dalam Golang boleh dibahagikan kepada jenis asas dan jenis komposit. Jenis asas tidak boleh diubah suai secara langsung, manakala nilai jenis komposit boleh diubah suai melalui indeks, nama kunci dan sintaks titik. Di Golang, hantaran parameter boleh dilakukan dalam dua cara: hantaran nilai dan hantaran rujukan Anda perlu memutuskan kaedah yang hendak digunakan berdasarkan keperluan sebenar. Dalam kes pemindahan nilai, nilai di luar fungsi tidak boleh diubah suai secara langsung, dan ia perlu dicapai dengan menghantar penunjuk.
Atas ialah kandungan terperinci Cara mengubah suai nilai dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!