类型转换从(type *int)到类型int

huangapple go评论78阅读模式
英文:

Type conversion from (type *int) to type int

问题

我想要将一个指针 *int 转换为它的实际值 int,在 Go 语言中。

你如何做到这一点?

英文:

I want to convert a pointer *int to its real value int, in Go language.

How do you do it?

答案1

得分: 4

只需使用*运算符。例如:

var i  int = 10  // `i`是一个整数,值为10
var p *int = &i  // `p`是一个指向整数的指针,其值是一个内存地址
var n  int = *p  // `n`又是一个整数,值为10

一旦你理解了发生的事情,上面的代码可以以更符合惯用法(更简单)的方式编写,假设我们在一个函数内部:

i := 10
p := &i
n := *p
英文:

Just use the * operator. For example:

var i  int = 10  // `i` is an integer, with value 10
var p *int = &i  // `p` is a pointer to an integer, its value is a memory address
var n  int = *p  // `n` is again an integer, with value 10

Once you get the hang of what's happening, the above code can be written in a more idiomatic (and simpler) way like this, assuming that we're inside a function:

i := 10
p := &i
n := *p

huangapple
  • 本文由 发表于 2012年6月18日 06:54:06
  • 转载请务必保留本文链接:https://go.coder-hub.com/11075408.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定