在计算机语言中go是什么意思,Golang中’*’和’&’的含义是什么?

我是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

5: var2 [i] = *addtother (randomstring(lengthofcurrent))

6: }

7: return &callproperfunction {var1 int, var2 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: %p\n", p)

fmt.Printf("Value of var a: %v\n", *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: %p\n", p)

fmt.Printf("Value of var a: %v\n", *p)

总而言之,当使用*和&请记住*用于设置您指向的变量的值和&是您指向/想要指向的变量的地址.

希望这个答案有所帮助

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值