Pointers Golang:返回指针和去法语化
所以我有一个函数Pointers Golang:返回指针和去法语化,pointers,go,Pointers,Go,所以我有一个函数getToken() 然后相应的调用: res := getToken() println(res["username"]) 为什么res[“username”]等于两个内存地址(0x2b3c20,0xc420075420)?这应该是一个类似于adam的字符串。我也尝试过func getToken()*jwt.MapClaims和return&claims,但仍然没有效果。您应该尝试使用fmt.Println而不是Println。下面是一个使用printlnvsfmt.pri
getToken()
然后相应的调用:
res := getToken()
println(res["username"])
为什么
res[“username”]
等于两个内存地址(0x2b3c20,0xc420075420)
?这应该是一个类似于adam
的字符串。我也尝试过func getToken()*jwt.MapClaims
和return&claims
,但仍然没有效果。您应该尝试使用fmt.Println
而不是Println
。下面是一个使用println
vsfmt.println
package main
import (
"fmt"
)
func foo() map[string]string {
return map[string]string{
"k": "value",
}
}
func main() {
res := foo()
println("Output from println:", res) // prints pointer address
fmt.Println("Output from fmt.Println: ", res) // prints the map
}
输出:
Output from println: 0x10432200
Output from fmt.Println: map[k:value]
您是否尝试过使用
*res[“username]
?@GujaratSantana返回错误res[“username”](键入interface{})
无效的间接res[“username”]您是否尝试过fmt.Println(res[“username”])
而不是Println
?很好,它可以工作。这是真正学习的起点:但为什么它可以工作?
Output from println: 0x10432200
Output from fmt.Println: map[k:value]