Bagaimana untuk memanggil fungsi golang

PHPz
Lepaskan: 2024-04-21 09:21:01
asal
541 orang telah melayarinya

Terdapat dua cara untuk memanggil fungsi dalam Go: lulus mengikut nilai dan lulus melalui rujukan. Melepasi nilai menghantar salinan pembolehubah ke fungsi tanpa menjejaskan nilai pembolehubah asal melalui rujukan menghantar alamat pembolehubah ke fungsi, dan sebarang pengubahsuaian akan menjejaskan nilai pembolehubah asal. Dalam pertempuran sebenar, fungsi Tambah menggunakan hantaran nilai, dan fungsi Multiply menggunakan hantaran rujukan untuk mengubah suai nilai pembolehubah dengan cara yang berbeza.

Bagaimana untuk memanggil fungsi golang

Cara memanggil fungsi Go

Dalam bahasa Go, panggilan fungsi boleh dilaksanakan dalam dua cara: lulus mengikut nilai dan lulus melalui rujukan.

Nilai berlalu

Nilai berlalu menghantar salinan pembolehubah kepada fungsi, bermakna sebarang pengubahsuaian dalam fungsi tidak akan menjejaskan nilai pembolehubah asal.

package main

import "fmt"

func add(x int) int {
    x++  // 修改 x 的副本
    return x
}

func main() {
    y := 5
    newY := add(y)  // 传递 y 的副本
    fmt.Println(newY)  // 输出 6
    fmt.Println(y)  // 输出 5
}
Salin selepas log masuk

Rujukan lalu

Rujukan lalu menghantar alamat pembolehubah kepada fungsi, yang bermaksud bahawa sebarang pengubahsuaian kepada pembolehubah dalam fungsi akan menjejaskan nilai pembolehubah asal.

package main

import "fmt"

func add(x *int) {
    *x++  // 修改 x 指向的值
}

func main() {
    y := 5
    add(&y)  // 传递 y 的地址
    fmt.Println(y)  // 输出 6
}
Salin selepas log masuk

Kes praktikal

Dalam kod berikut, kami mentakrifkan dua fungsi: AddMultiplyAdd 使用值传递,而 Multiply Lulus dengan rujukan.

rreeee

Atas ialah kandungan terperinci Bagaimana untuk memanggil fungsi golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan