Golang中’*’和’&’的含义是什么?
发布时间:2020-12-16 09:28:54 所属栏目:大数据 来源:网络整理
导读:我是Golang的新手,我正在做 http://tour.golang.org/.任何人都能解释我的第1,3,5和7行这个功能特别是’*’和’’做?我的意思是在函数声明中提到它们,它们应该/预期会做什么?玩具示例: 1: func intial1(var1 int,var2 int,func1.newfunc[]) *callproperfun
我是Golang的新手,我正在做
http://tour.golang.org/.任何人都能解释我的第1,3,5和7行这个功能特别是’*’和’&’做?我的意思是在函数声明中提到它们,它们应该/预期会做什么?玩具示例:
1: func intial1(var1 int,var2 int,func1.newfunc[]) *callproperfunction { 2: 3: addition:= make ([] add1,var1) 4: for i:=1;i<var2;i++ { 5: var2 [i] = *addtother (randomstring(lengthofcurrent)) 6: } 7: return &callproperfunction {var1 int,func1.newfunc[],jackpot} 8: } 似乎它们就像我们在C中所拥有的一样.但是我无法将这些概念与我们在这里的内容联系起来.换句话说,’*’和’&’当我在Go中的函数声明中使用它们时. 编辑:我知道什么参考和解引用意味着什么.我无法理解的是:我们如何使用指向函数的指针是Golang.例如第1行和第7行,这两行做什么?我们声明了一个名为intial1的函数,它返回一个指针?在第7行中,我们使用return函数调用它. 解决方法
你的问题与给出的例子不太匹配,但我会尽量直截了当.
假设我们有一个名为a的变量,它保存整数5,另一个变量名为p,它将成为一个指针. 使用它们打印变量可以生成不同的输出,因此一切都取决于具体情况和使用情况. &安培;返回以下变量的内存地址. *返回以下变量的值(它应该保存变量的内存地址,除非您想获得奇怪的输出并且可能因为您访问计算机的RAM而出现问题) var a = 5 var p = &a // p holds variable a's memory address fmt.Printf("Address of var a: %pn",p) fmt.Printf("Value of var a: %vn",*p) // Let's change a value (using the initial variable or the pointer) *p = 3 // using pointer a = 3 // using initial var fmt.Printf("Address of var a: %pn",*p) 总而言之,当使用*和&请记住*用于设置您指向的变量的值和&是您指向/想要指向的变量的地址. 希望这个答案有所帮助 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |