【发布时间】:2019-02-22 03:00:02
【问题描述】:
我对 golang 很陌生。在这里,我有一个问题让我困惑了一段时间。 我知道我们应该使用“&”来获取地址,但是如果我们在没有“&”的切片上使用 printf 呢?
package main
import "fmt"
var slice = []int{1, 2, 3, 4}
func main() {
fmt.Printf("address of slice %p \n", slice)
fmt.Printf("address of slice %p \n", &slice)
}
结果在我的 MacBook 上是这样的:
切片地址0x11354d0
切片地址0x1128be0
提前谢谢你!
【问题讨论】:
-
我也不是专家,但根据我从文档中了解到的情况,我认为如果你使用
%p slice,它会打印第 0 个元素的地址(所以也许你可以做一些指针运算?!)和%p &slice打印切片的指针,包括“包装器”或“开销”。我想你读过文档,我只是想确保golang.org/pkg/fmt -
刚试过!非常感谢你:-)
-
“我是 golang 的新手”,所以有两个建议:该语言称为“Go”,并且始终阅读函数的完整文档,包括包级文档。总是。
-
谢谢你,沃尔克!