【问题标题】:Type conversion from (type *int) to type int从 (type *int) 到 int 类型的类型转换
【发布时间】:2012-06-19 23:36:29
【问题描述】:

我想用 Go 语言将指针 *int 转换为其实际值 int

你是怎么做到的?

【问题讨论】:

    标签: pointers int type-conversion go


    【解决方案1】:

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

    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
    

    一旦你掌握了正在发生的事情,上面的代码可以像这样以更惯用(和更简单)的方式编写,假设我们在一个函数中:

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

    【讨论】:

    • 这些不是惯用的。很少有人会在 go 中使用var p *int = &i。通常你会做p := &ivar n int = *p 就是 n := *p
    • @StephenWeinberg 我知道,但考虑到问题我想明确说明每个变量的类型
    • @StephenWeinberg 无论如何。我更新了我的答案以反映编写相同代码的更惯用的方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多