タイトル: Golang プログラミングの必須スキルの詳細な学習: ポインター アプリケーションの詳細な説明
ポインターは、Golang 言語において非常に重要かつ基本的な概念です。メモリを効率的に操作し、コードの効率を向上させます。この記事では、Golang でのポインターのアプリケーションを詳しく掘り下げ、読者がこの重要なスキルをより深く理解し習得できるように、具体的なコード例を使用します。
ポインタは、別の変数のメモリ アドレスを格納する変数です。ポインターを介して、対応する変数に直接アクセスして変更できます。 Golang では、#* を使用してポインター型を表し、
& を使用して変数のアドレスを取得します。
package main import "fmt" func main() { var num1 int = 10 var ptr *int // 声明一个int类型的指针ptr ptr = &num1 // 将num1的地址赋值给ptr fmt.Println("num1的值为:", num1) fmt.Println("ptr存储的地址为:", ptr) fmt.Println("ptr指向的值为:", *ptr) // 通过*ptr来获取指针所指向的值 }
ptr を選択し、
num1 のアドレスを割り当てます。ポインタが指す値は、
num1 の値である
*ptr を通じて取得できます。
package main import "fmt" func changeValue(ptr *int) { *ptr = 20 } func main() { var num int = 10 fmt.Println("调用changeValue函数前,num的值为:", num) changeValue(&num) fmt.Println("调用changeValue函数后,num的值为:", num) }
changeValue を定義します。
main 関数で、
changeValue 関数を呼び出し、
num のアドレスを渡し、最終的に
num の値を正常に変更します。 。
package main import "fmt" type Person struct { Name string Age int } func main() { p := Person{Name: "Alice", Age: 25} fmt.Println("修改前的姓名:", p.Name) modifyName(&p) fmt.Println("修改后的姓名:", p.Name) } func modifyName(p *Person) { p.Name = "Bob" }
Person 構造体を定義します。ポインターを介して構造体のインスタンスを渡すことにより、構造体を変更できます。これにより、構造体インスタンスのコピーによるオーバーヘッドが回避されます。
以上がGolang プログラミングの必須スキル: ポインターの適用をマスターするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。