gpt4 book ai didi

pointers - 无法从指针接收器访问值

转载 作者:数据小太阳 更新时间:2023-10-29 03:44:49 26 4
gpt4 key购买 nike

我无法从 Pointer 接收器获取值。它不断返回内存地址。
我正在尝试以下面的格式访问来自其他文件的指针接收器的值

package types

import (
// "Some product related imports"
"golang.org/x/oauth2"
"time"
)

type TestContext struct {
userId string
}

func (cont *TestContext) GetUserId() string {
return cont.userId
}

我正在尝试通过多种方式解决它,但要么获取内存地址、nil 值,要么出错。

最佳答案

始终编写干净的代码:

  1. 名称 userID 而不是 userId
  2. 名称 UserID() 而不是 GetUserId()
  3. 使用 ctx2 := &myType.myType{} 而不是 ctx2 := *myType.myType{}

  4. 尝试 this代码:

package main

import (
"fmt"
)

type myType struct {
userID string
}

func (cont *myType) UserID() string {
return cont.userID
}

func main() {
ctx1 := myType{"1"}
fmt.Println(ctx1.UserID()) // 1

ctx := myType{"2"}
var101 := ctx.UserID()
fmt.Println(ctx1.UserID(), var101) // 1 2

ctx2 := &myType{}
fmt.Println(ctx2) // &{}

var ctx3 *myType
fmt.Println(ctx3) // <nil>
}

输出:

1
1 2
&{}
<nil>

关于pointers - 无法从指针接收器访问值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55411621/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com