相关疑难解决方法(0)

如何打印Go对象的指针值?指针值是什么意思?

我正在玩Go,并且还没有一个很好的心理模型,当结构通过值或引用传递时.

这可能是一个非常愚蠢的问题,但我只是想进行一些实验,看看我是否还在处理相同的对象,或者我已经复制了它(通过值传递它).

有没有办法打印对象的指针(或指针值由gc更改的内部id)?

package main

import ( "runtime" )

type Something struct {
    number int
    queue chan int
}

func gotest( s *Something, done chan bool ) {
    println( "from gotest:")
    println( &s )
    for num := range s.queue {
        println( num )
        s.number = num
    }
    done <- true
}

func main() {
    runtime.GOMAXPROCS(4)
    s := new(Something)
    println(&s)
    s.queue = make(chan int)
    done := make(chan bool)
    go gotest(s, done)
    s.queue <- 42
    close(s.queue)
    <- done
    println(&s)
    println(s.number)
}
Run Code Online (Sandbox Code Playgroud)

在我的窗口上给出(8g编译版本): …

go

65
推荐指数
2
解决办法
6万
查看次数

标签 统计

go ×1