Rumah  >  Artikel  >  pembangunan bahagian belakang  >  pengubahsuaian parameter golang

pengubahsuaian parameter golang

WBOY
WBOYasal
2023-05-10 18:39:07755semak imbas

Golang ialah bahasa pengaturcaraan sumber terbuka yang pada asalnya dibangunkan oleh Google. Ciri utamanya termasuk: keselarasan yang cekap, sintaks ringkas dan prestasi cemerlang. Antaranya, fungsi adalah bahagian yang sangat asas dalam pengaturcaraan Golang, dan parameter fungsi juga merupakan konsep teras dalam Golang. Dalam fungsi, kita boleh mengubah suai nilai parameter Tingkah laku ini dipanggil pengubahsuaian parameter. Dalam artikel ini, kami akan memperkenalkan pengubahsuaian parameter di Golang secara terperinci.

1. Kaedah hantaran parameter dalam Golang

Dalam bahasa pengaturcaraan lain, kaedah hantaran parameter biasa termasuk: hantaran nilai dan hantaran rujukan. Dalam pemindahan nilai, pengubahsuaian fungsi bagi parameter tidak akan menjejaskan pembolehubah apabila fungsi dipanggil. Dalam pemindahan rujukan, pengubahsuaian fungsi parameter akan mempengaruhi pembolehubah apabila fungsi dipanggil.

Di Golang, kaedah lulus parameter adalah serupa dengan hantaran rujukan, tetapi hantaran parameter dalam Golang tidak menggunakan penunjuk sepenuhnya. Kaedah lulus parameter di Golang dipanggil nilai lulus, iaitu, nilai pembolehubah itu sendiri diluluskan, tetapi apabila diubah suai di dalam fungsi, nilai pada alamat pembolehubah dikendalikan.

2. Pengubahsuaian parameter di Golang

Di Golang, parameter dalam fungsi boleh dibahagikan kepada dua jenis: jenis nilai pas dan jenis rujukan pas. Apabila parameter jenis nilai dilaksanakan, salinan nilai parameter akan disalin dan kemudian dikendalikan di dalam fungsi, tetapi ini tidak akan menjejaskan nilai pembolehubah asal yang diluluskan apabila fungsi dipanggil. Apabila menghantar parameter jenis rujukan, apabila fungsi dilaksanakan, alamat parameter akan dihantar ke dalam fungsi, dan nilai pembolehubah asal akan dimanipulasi secara langsung melalui alamat, jadi pengubahsuaian dalam fungsi akan menjejaskan nilai pembolehubah asal.

Kaedah lulus parameter di Golang membolehkan kami mengubah suai parameter dengan mudah. Sebagai contoh, kami mentakrifkan pembolehubah rentetan, menghantarnya ke dalam fungsi sebagai parameter, mengubah suai nilai pembolehubah rentetan dalam fungsi, dan kemudian mengeluarkan nilai yang diubah suai dalam fungsi utama. Kodnya adalah seperti berikut:

package main

import "fmt"

func changeStr(str string) {
    str = "hello"
}

func changeStrPtr(str *string) {
    *str = "hello"
}

func main() {
    str := "world"
    changeStr(str)
    fmt.Println(str) // 输出 world

    changeStrPtr(&str)
    fmt.Println(str) // 输出 hello
}

Dalam kod di atas, kami mentakrifkan dua fungsi changeStr dan changeStrPtr, yang digunakan untuk mengubah suai pembolehubah rentetan str masing-masing. Dalam fungsi changeStr, kami hanya menetapkan pembolehubah rentetan yang diluluskan kepada "hello", tetapi pengubahsuaian ini tidak akan menjejaskan pembolehubah str dalam fungsi utama. Dalam fungsi changeStrPtr, kami mengubah suai nilai yang ditunjukkan oleh penunjuk parameter yang diluluskan kepada "hello".

3. Pengubahsuaian parameter jenis nilai dalam Golang

Untuk parameter jenis nilai, pengubahsuaian dalam fungsi tidak akan menjejaskan pembolehubah apabila fungsi dipanggil. Ini kerana fungsi akan membuat salinan parameter jenis nilai dan kemudian mengubah suainya di dalam fungsi. Oleh itu, apabila kami mengubah suai parameter jenis nilai dalam fungsi, kami hanya mengubah suai salinan parameter dan tidak mempunyai kesan ke atas pembolehubah asal.

package main

import "fmt"

func changeInt(i int) {
    i = 10
    fmt.Println("i in function:", i)
}

func main() {
    i := 5
    changeInt(i)
    fmt.Println("i in main:", i)
}

Dalam kod di atas, kami mentakrifkan fungsi changeInt, yang menerima parameter i jenis int dan menetapkan nilai i kepada 10. Dalam fungsi utama, kami mentakrifkan pembolehubah i jenis int dan menetapkan nilainya kepada 5. Kemudian, kami memanggil fungsi changeInt, menghantar i sebagai parameter. Apabila fungsi menyelesaikan pelaksanaan, kami mengeluarkan nilai i dalam fungsi utama. Oleh kerana kami mengubah suai salinan parameter i dalam fungsi changeInt, nilai i selepas fungsi itu dilaksanakan masih 5.

4. Pengubahsuaian kepada parameter jenis rujukan dalam Golang

Untuk parameter jenis rujukan, pengubahsuaian dalam fungsi boleh menjejaskan pembolehubah secara langsung apabila fungsi dipanggil. Di Golang, jenis penunjuk adalah jenis rujukan. Dalam fungsi, jika parameter yang kita lalui adalah jenis penunjuk, maka mengubah suai nilai yang ditunjuk oleh penunjuk di dalam fungsi akan secara langsung mempengaruhi pembolehubah apabila fungsi dipanggil.

package main

import "fmt"

type Person struct {
    Name string
    Age  int
}

func changePerson(p *Person) {
    p.Name = "Tom"
    p.Age = 18
    fmt.Println("Person in function:", p)
}

func main() {
    person := Person{Name: "Jack", Age: 20}
    changePerson(&person)
    fmt.Println("Person in main:", person)
}

Dalam kod di atas, kami mentakrifkan struktur bernama Orang, yang mengandungi dua medan: Nama dan Umur. Kami juga mentakrifkan fungsi changePerson, yang menerima penunjuk kepada jenis struktur Orang. Di dalam fungsi, kami mengubah suai nilai yang ditunjukkan oleh penunjuk dan mengeluarkan struktur Orang yang diubah suai. Dalam fungsi utama, kami mentakrifkan orang pembolehubah Orang dan memulakannya kepada {Name: "Jack", Umur: 20}. Seterusnya, kami menghantar penunjuk orang sebagai parameter kepada fungsi changePerson. Apabila fungsi itu dilaksanakan, kami mengeluarkan nilai orang dalam fungsi utama dan kami dapati orang itu telah diubah suai kepada {Name: "Tom", Umur: 18}.

5. Nota

Anda perlu memberi perhatian kepada perkara berikut apabila menggunakan pengubahsuaian parameter:

  1. Anda perlu tahu cara menghantar parameter, parameter jenis nilai dan parameter jenis rujukan Kaedah pengubahsuaian adalah berbeza, jadi berhati-hati untuk tidak mengelirukan mereka.
  2. Jika parameter yang diterima oleh fungsi adalah pembolehubah yang sudah mempunyai nilai dalam fungsi utama, maka alamatnya perlu dihantar sebagai parameter semasa memanggil fungsi, jika tidak fungsi tidak boleh mengubah suai pembolehubah.
  3. Apabila mengubah suai parameter di dalam fungsi, sebaiknya tambahkan pengesahan keselamatan untuk mengelakkan kesan yang tidak perlu pada pembolehubah asal.

6

Artikel ini memperkenalkan pengubahsuaian parameter di Golang, termasuk kaedah lulus parameter dan kaedah pengubahsuaian parameter jenis nilai dan parameter jenis rujukan. Dalam fungsi, kita boleh mengubah suai nilai pembolehubah asal dengan mengubah suai parameter, tetapi kita perlu memberi perhatian kepada kaedah lulus parameter dan penggunaan kaedah pengubahsuaian yang munasabah. Mengubah suai parameter bukan sahaja boleh meningkatkan kecekapan program, tetapi juga membolehkan kami mengawal pelaksanaan program dengan lebih fleksibel semasa pengaturcaraan.

Atas ialah kandungan terperinci pengubahsuaian parameter 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