我不是 GoLang 專家,但我需要對專案進行故障排除。現在我嘗試列印相同變數的值,但我收到的輸出是地址而不是值:
attrs := core.Attributes{}
err = rtrV1.SetAttributesStruct(&attrs, sessAttrs, session.NasIP, ipv4Session, ipv6Session)
if err1, ok := err.(core.SessionNotFoundError); ok {
apiH.Logger.Info(err1.Error())
c.JSON(404, gin.H{"message": err.Error()})
return
} else if err != nil {
apiH.Logger.Error(err.Error())
c.JSON(500, gin.H{"message": "internal error"})
return
}
err = core.MakeNASProxyRequest(apiH.HttpClient, nasproxyHost, nasproxyPort, authToken, attrs)
debugAttrs := fmt.Sprintf("% p", attrs)
debugAttrs2 := fmt.Sprintf("% v", attrs)
apiH.Logger.Info("attrs:" " " debugAttrs, log.Field("type", "serve-request"))
apiH.Logger.Info("attr2:" " " debugAttrs2, log.Field("type", "serve-request"))
我需要列印attrs,但我收到了這個輸出:
"msg":"attrs: %!p(core.Attributes={ 0xc000420460 <nil> <nil> 0xc000238c60 <nil> <nil> <nil> <nil> 0xc000238c98 <nil> <nil> <nil> <nil>})"
"msg":"attr2: {NASIPAddress:0xc000420460 NASIdentifier:<nil> NASIPv6Address:<nil> Username:0xc000238c60 NASPort:<nil> FramedIPAddress:<nil> CalledStationID:<nil> CallingStationID:<nil> AcctSessionID:0xc000238c98 AcctMultiSessionID:<nil> NASPortID:<nil> FramedInterfaceID:<nil> FramedIPv6Prefix:<nil>}"
如何列印值?謝謝您的幫助
uj5u.com熱心網友回復:
你可以使用深漂亮的列印機。進口:github.com/davecgh/go-spew/spew
例子:
spew.Dump(attrs)
uj5u.com熱心網友回復:
您可以使用fmt包或 JSON 編組來列印結構值...例如
import "fmt"
type Person struct {
FirstName string
}
func main() {
p := &Person{"mr1"}
fmt.Printf("% v", p)
}
或者
import (
"encoding/json"
"fmt"
)
type Person struct {
FirstName string
}
func main() {
p := &Person{"mr1"}
s, _ := json.Marshal(p)
fmt.Printf("%s\n", s)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/422106.html
標籤:
