So rufen Sie die Golang-Funktion auf

PHPz
Freigeben: 2024-04-21 09:21:01
Original
541 Leute haben es durchsucht

Es gibt zwei Möglichkeiten, Funktionen in Go aufzurufen: Übergabe als Wert und Übergabe als Referenz. Bei der Übergabe als Wert wird eine Kopie der Variablen an die Funktion übergeben, ohne den Wert der Originalvariablen zu beeinflussen; bei der Übergabe als Referenz wird die Adresse der Variablen an die Funktion übergeben, und jede Änderung wirkt sich auf den Wert der Originalvariablen aus. Im tatsächlichen Kampf verwendet die Add-Funktion die Wertübergabe und die Multiply-Funktion die Referenzübergabe, um den Wert der Variablen auf unterschiedliche Weise zu ändern.

So rufen Sie die Golang-Funktion auf

So rufen Sie eine Go-Funktion auf

In der Go-Sprache kann der Funktionsaufruf auf zwei Arten implementiert werden: Übergabe als Wert und Übergabe als Referenz.

Wertübergabe

Wertübergabe übergibt eine Kopie einer Variablen an eine Funktion, was bedeutet, dass Änderungen innerhalb der Funktion keinen Einfluss auf den Wert der ursprünglichen Variablen haben.

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
}
Nach dem Login kopieren

Pass-by-Reference

Pass-by-Reference übergibt die Adresse einer Variablen an eine Funktion, was bedeutet, dass alle Änderungen an der Variablen innerhalb der Funktion den Wert der ursprünglichen Variablen beeinflussen.

package main

import "fmt"

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

func main() {
    y := 5
    add(&y)  // 传递 y 的地址
    fmt.Println(y)  // 输出 6
}
Nach dem Login kopieren

Praktischer Fall

Im folgenden Code definieren wir zwei Funktionen: AddMultiplyAdd 使用值传递,而 Multiply Übergeben als Referenz.

package main

import "fmt"

func Add(x int) {
    x++
}

func Multiply(x *int) {
    *x *= 2
}

func main() {
    a := 5
    Add(a) // 调用 Add,使用值传递
    fmt.Println(a) // 输出 5(值不变)

    b := 10
    Multiply(&b) // 调用 Multiply,使用引用传递
    fmt.Println(b) // 输出 20(值已修改)
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo rufen Sie die Golang-Funktion auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage