golang 指针怎样用_后端开发

golang 指针怎样用_后端开发,第1张

指针的基础意义是存储某些值地点的内存地点。


(引荐进修:go)

在 Golang 中,虽然不是一切的值都能够掏出地点(只管他们也存储在内存中,比方 const),但一切的变量必定能够掏出地点。


变量,就是一块内存区域中存储的值[1]。


不仅我们熟习的 var x int 中的 x 是变量,一个比较复杂的表达式也能够示意一个变量,比方sliceA[0],mapB["key"],以及structC.FieldD。


也就是说,他们都能够有本身的指针。


当我们须要修正构造体的变量内容的时刻,要领传入的构造体变量参数须要运用指针,也就是构造体的地点,须要修正map中的架构体的变量的时刻也须要运用构造体地点作为map的value。


Go 能够直接新建 struct 的指针

在 golang 中,我们能够经由过程ptr := &A{Value: 1},就获得了一个构造体 A 值的指针;但在 C 中就没法经由过程零丁的赋值语句获得:

typedef struct {    
int value;
} 
A;A *ptr1; // 没法给 ptr 所指的值赋值
A *ptr2 = &A{1}; // 没有如许的语法
A a = {1}; // 再经由过程 &a 能够获得指针

假如说这个区分只是语法上的表象,别的一个区分大概就是事关 bug 的区分了。


2. Go 中能够安全地返回局部变量的指针

在上面的 C 代码举例中,我们确切能够声明一些变量,但假如这些声明是在一个要领内完成的,比方:

A *init(){
    A *ptr;
    return ptr;}

或许

A *init(){
    A a;
    return &a;}

那末,这个声明出来的局部变量,是一种自动变量(automatic variable[3]),原要领,也就是 init() 要领,完毕后,这些自动变量就“消逝”了。


以上就是golang 指针怎样用的细致内容,更多请关注ki4网别的相干文章!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/553867.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019-12-31
下一篇 2019-12-31

发表评论

登录后才能评论

评论列表(0条)

保存