Go 言語にはポインターがあります。Go 言語でポインターを使用すると、いくつかのタスクを簡単に実行できます。ポインター形式の宣言構文は「var var_name *var-type」で、パラメーター「var-type」はポインターです。 「var_name」はポインター変数の名前であり、変数がポインターとして使用されることを指定するために * 記号が使用されます。
この記事のデモ環境: Windows 7 システム、Go1.11.2 バージョン、Dell G3 コンピューター。
Go 言語にはポインタがあります。
Go 言語でポインターを使用すると、一部のタスクの実行が容易になります。
変数は、コンピューターのメモリ アドレスを参照するために使用される便利なプレースホルダーであることは誰もが知っています。
Go 言語のアドレス文字は & で、変数の前に使用すると、対応する変数のメモリアドレスが返されます。
次の例は、メモリ内の変数のアドレスを示しています:
Example
package main import "fmt" func main() { var a int = 10 fmt.Printf("变量的地址: %x\n", &a ) }
上記のコードを実行した出力結果は次のとおりです:
变量的地址: 20818a220
Now私たちが学んだことは、メモリアドレスとそれにアクセスする方法です。次にポインタを詳しく紹介します。
ポインタとは
#ポインタ変数は、値のメモリ アドレスを指します。 変数や定数と同様に、ポインターを使用する前に宣言する必要があります。ポインタ宣言の形式は次のとおりです。var var_name *var-typevar-type はポインタの型、var_name はポインタ変数名、* 記号は変数がポインタとして使用されることを指定するために使用されます。以下は有効なポインタ宣言です:
var ip *int /* 指向整型*/ var fp *float32 /* 指向浮点型 */この場合、これは int および float32 へのポインタです。
ポインターの使用方法
ポインターの使用プロセス:package main import "fmt" func main() { var a int= 20 /* 声明实际变量 */ var ip *int /* 声明指针变量 */ ip = &a /* 指针变量的存储地址 */ fmt.Printf("a 变量的地址是: %x\n", &a ) /* 指针变量的存储地址 */ fmt.Printf("ip 变量储存的指针地址: %x\n", ip ) /* 使用指针访问值 */ fmt.Printf("*ip 变量的值: %d\n", *ip ) }上記の例の実行出力は次のとおりです:
a 变量的地址是: 20818a220 ip 变量储存的指针地址: 20818a220 *ip 变量的值: 20
Go null pointer
ポインタが定義されている場合変数に代入すると、その値は nil になります。 nil ポインタはヌル ポインタとも呼ばれます。 nil は概念的には他の言語の null、None、nil、NULL と同じであり、それらはすべてゼロまたは空の値を指します。 ポインタ変数は通常、ptr と省略されます。 次の例を参照してください: 例package main import "fmt" func main() { var ptr *int fmt.Printf("ptr 的值为 : %x\n", ptr ) }上記の例の出力結果は次のとおりです:
ptr 的值为 : 0Null ポインタ判定:
if(ptr != nil) /* ptr 不是空指针 */ if(ptr == nil) /* ptr 是空指针 */More go 言語の技術記事については、
以上がGo 言語にはポインタがありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。